2024-02-04 13:35:45 +08:00
|
|
|
|
using DM_Weight.Models;
|
|
|
|
|
using DM_Weight.util;
|
|
|
|
|
using DM_Weight.Views.Dialog;
|
|
|
|
|
using gregn6Lib;
|
|
|
|
|
using SqlSugar;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Configuration;
|
|
|
|
|
using System.IO;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
namespace DM_Weight.Services
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 账册服务类
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class MachineRecordService
|
|
|
|
|
{
|
|
|
|
|
////private SqlSugarScope SqlSugarHelper.Db;
|
|
|
|
|
public MachineRecordService()
|
|
|
|
|
{
|
|
|
|
|
////this.SqlSugarHelper.Db = sqlSugarScope;
|
|
|
|
|
}
|
|
|
|
|
public List<AccountModel> ReportAccountBook(DateTime? startDate, DateTime? endDate,int type, string drug_id="")
|
|
|
|
|
{
|
|
|
|
|
DateTime? p_startDate = startDate ?? Convert.ToDateTime("2010-1-1");
|
|
|
|
|
DateTime? p_endDate = endDate ?? DateTime.Now.AddDays(1);
|
|
|
|
|
string p_machine_id = (ConfigurationManager.AppSettings["machineId"] ?? "DM1");
|
|
|
|
|
string SQL = $@"SELECT TYPE, stockQuantity,inQuantity,outQuantity,operationTime,invoiceId,drugName,drugId,drugSpec,packUnit,dosage,manufactory,manuNo,effDate,
|
|
|
|
|
operatorName,reviewerName,supplierDept,receiveDept FROM
|
2024-09-29 16:58:56 +08:00
|
|
|
|
(SELECT mr.type,mr.`stock_quantity` AS `stockQuantity`,
|
|
|
|
|
-- IF(mr.`type` IN (1, 31), mr.`quantity`,IF(mr.`type` = 4 AND mr.`quantity` > 0, mr.`quantity`, 0)) AS `inQuantity`,
|
|
|
|
|
-- IF(mr.`type` = 2, mr.`quantity`, IF(mr.`type` = 4 AND mr.`quantity` < 0, (0 - mr.`quantity`), 0)) AS `outQuantity`,
|
2024-10-09 10:24:59 +08:00
|
|
|
|
if(mr.drawer_no>2 and mr.`type` IN (1, 31),quantity,IF(mr.`type` = 4 AND mr.`quantity` > 0, mr.`quantity`,0)) AS `inQuantity`,
|
2024-09-29 16:58:56 +08:00
|
|
|
|
if(OI.ORDER_NO is not null,mr.quantity,IF(mr.`type` = 4 AND mr.`quantity` < 0, (0 - mr.`quantity`), 0)) AS `outQuantity`,
|
2024-02-04 13:35:45 +08:00
|
|
|
|
DATE_FORMAT(mr.`operation_time`,'%m/%d') AS `operationTime`,IF(mr.`type`=1,mr.`invoice_id`,NULL) AS `invoiceId`, di.`drug_name` AS `drugName`, di.`drug_id` AS `drugId`,
|
|
|
|
|
di.`drug_spec` AS `drugSpec`, di.`pack_unit` AS `packUnit`, di.`dosage` AS `dosage`, di.`manufactory` AS `manufactory`,
|
|
|
|
|
mr.`manu_no` AS `manuNo`, DATE_FORMAT(mr.`eff_date`,'%y/%m/%d') AS `effDate`, u1.`user_name` AS `operatorName`, u2.`user_name` AS `reviewerName`,mr.supplierDept,mr.receiveDept FROM
|
|
|
|
|
dm_machine_record mr LEFT JOIN drug_info di ON mr.`drug_id` = di.`drug_id` LEFT JOIN user_list u1 ON mr.`operator` = u1.`id`
|
2024-09-29 16:58:56 +08:00
|
|
|
|
LEFT JOIN user_list u2 ON mr.`reviewer` = u2.`id`
|
|
|
|
|
LEFT JOIN ORDER_INFO OI ON OI.ORDER_NO=mr.invoice_id
|
|
|
|
|
WHERE mr.`machine_id` = '{p_machine_id}' AND mr.`operation_time` > '{p_startDate}'
|
2024-02-04 13:35:45 +08:00
|
|
|
|
AND mr.`operation_time` < '{p_endDate}' and IF(mr.`type` = 4 AND mr.`quantity` = 0, 99999, mr.`quantity`) <>99999 ";
|
|
|
|
|
if (!string.IsNullOrEmpty(drug_id))
|
|
|
|
|
{
|
|
|
|
|
SQL += " AND mr.drug_id='" + drug_id + "' ";
|
|
|
|
|
}
|
|
|
|
|
SQL += " ORDER BY mr.`drug_id`, mr.`operation_time`, mr.`id`) AS T";
|
|
|
|
|
if(type>0)
|
|
|
|
|
{
|
|
|
|
|
if(type==1)
|
|
|
|
|
{
|
|
|
|
|
SQL += " WHERE inQuantity>0 ";
|
|
|
|
|
}
|
|
|
|
|
if(type==2)
|
|
|
|
|
{
|
|
|
|
|
SQL += " WHERE outQuantity>0 ";
|
|
|
|
|
}
|
|
|
|
|
if(type==5)
|
|
|
|
|
{
|
|
|
|
|
SQL += " WHERE type=5 ";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//ChannelStocks = q.Select(it => { it.CheckQuantity = it.Quantity; return it; }).ToList();
|
|
|
|
|
|
|
|
|
|
List<AccountModel> accountList = SqlSugarHelper.Db.SqlQueryable<AccountModel>(SQL)
|
|
|
|
|
.AddParameters(new
|
|
|
|
|
{
|
|
|
|
|
machineId = ConfigurationManager.AppSettings["machineId"] ?? "DM1"
|
|
|
|
|
})
|
|
|
|
|
//.Select(it => new { o = new AccountModel(), i = new DrugInfo() })
|
|
|
|
|
//.Select(it=>new AccountModel())
|
|
|
|
|
//.Select("*") //让上面一行不生成sql
|
|
|
|
|
.ToList();
|
|
|
|
|
|
|
|
|
|
//List<AccountModel> accountList=new List<AccountModel>();
|
|
|
|
|
return accountList;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|