80 lines
4.3 KiB
C#
80 lines
4.3 KiB
C#
|
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
|
|||
|
(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`, IF(mr.`type` = 5,mr.return_quantity1,0)))
|
|||
|
AS `inQuantity`, IF(mr.`type` = 2, mr.`quantity`, IF(mr.`type` = 4 AND mr.`quantity` < 0, (0 - mr.`quantity`), IF(mr.`type` = 5,mr.return_quantity2,0))) AS `outQuantity`,
|
|||
|
DATE_FORMAT(mr.`operation_time`,'%m/%d') AS `operationTime`,IF(mr.`type`=1||mr.type=5,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`
|
|||
|
LEFT JOIN user_list u2 ON mr.`reviewer` = u2.`id` WHERE mr.`machine_id` = '{p_machine_id}' AND mr.`operation_time` > '{p_startDate}'
|
|||
|
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;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|