From 0c085b4baba5c2f4ed10aa8593eae7739dd2458e Mon Sep 17 00:00:00 2001
From: maqiao <625215135@qq.com>
Date: Thu, 17 Apr 2025 11:28:09 +0800
Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=8B=A8=E5=85=A5=E5=BA=93=E6=A0=B9?=
=?UTF-8?q?=E6=8D=AE=E8=B0=83=E6=8B=A8=E5=8D=95=E4=B8=AD=E7=9A=84=E5=8D=95?=
=?UTF-8?q?=E4=BD=8D=E4=B8=8E=E8=8D=AF=E5=93=81=E4=BF=A1=E6=81=AF=E8=A1=A8?=
=?UTF-8?q?=E4=B8=AD=E5=B0=8F=E5=8D=95=E4=BD=8D=E5=81=9A=E5=AF=B9=E6=AF=94?=
=?UTF-8?q?=E8=BF=9B=E8=A1=8C=E5=8D=95=E4=BD=8D=E8=BD=AC=E6=8D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
DM_Weight/App.config | 4 +--
DM_Weight/Models/DrugInfo.cs | 9 +++++--
DM_Weight/Port/PortUtil.cs | 2 +-
.../ViewModels/InvoiceInNewWindowViewModel.cs | 26 ++++++++++++-------
.../ViewModels/ReturnDrugWindow2ViewModel.cs | 4 +--
5 files changed, 28 insertions(+), 17 deletions(-)
diff --git a/DM_Weight/App.config b/DM_Weight/App.config
index 0f6cef4..e2e563d 100644
--- a/DM_Weight/App.config
+++ b/DM_Weight/App.config
@@ -3,7 +3,7 @@
-
+
-
+
diff --git a/DM_Weight/Models/DrugInfo.cs b/DM_Weight/Models/DrugInfo.cs
index f77fadb..7a026d5 100644
--- a/DM_Weight/Models/DrugInfo.cs
+++ b/DM_Weight/Models/DrugInfo.cs
@@ -93,7 +93,12 @@ namespace DM_Weight.Models
[SugarColumn(IsIgnore = true)]
public string drug_name_spec { get; set; }
- //[SugarColumn(ColumnName = "drug_name_spec")]
- //public string Name { get; set; }
+
+ ///
+ /// 药品单位转换率
+ ///
+ [SugarColumn(ColumnName = "convert_ratio")]
+ public int ConvertRatio { get; set; }
+
}
}
diff --git a/DM_Weight/Port/PortUtil.cs b/DM_Weight/Port/PortUtil.cs
index 348cd51..aaf3364 100644
--- a/DM_Weight/Port/PortUtil.cs
+++ b/DM_Weight/Port/PortUtil.cs
@@ -545,7 +545,7 @@ namespace DM_Weight.Port
}
else
{
- Thread.Sleep(100);
+ Thread.Sleep(200);
// 灯在闪烁继续监听状态
GetBackDoorState();
}
diff --git a/DM_Weight/ViewModels/InvoiceInNewWindowViewModel.cs b/DM_Weight/ViewModels/InvoiceInNewWindowViewModel.cs
index 1e026b5..ab6a525 100644
--- a/DM_Weight/ViewModels/InvoiceInNewWindowViewModel.cs
+++ b/DM_Weight/ViewModels/InvoiceInNewWindowViewModel.cs
@@ -16,6 +16,7 @@ using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Configuration;
using System.Linq;
+using System.Reactive;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
@@ -291,7 +292,7 @@ namespace DM_Weight.ViewModels
if (SelectedInvoice != null)
{
//先查询有几种药
- string strSql = @"SELECT sum(Quantity) AS SumQuantity, COUNT(ID) AS CountNum,INVOICE_NO AS InvoiceNo,drug_id AS DrugId,QUANTITY AS quantity,drug_manu_no AS drugManuNo FROM IN_OUT_INVOICE WHERE INVOICE_NO=@INVOICE_NO GROUP BY INVOICE_NO,DRUG_ID";
+ string strSql = @"SELECT sum(IF(di.small_unit=io.units,io.quantity,io.quantity*di.convert_ratio)) AS SumQuantity, COUNT(io.ID) AS CountNum,io.INVOICE_NO AS InvoiceNo,io.drug_id AS DrugId,io.QUANTITY AS quantity,io.drug_manu_no AS drugManuNo FROM IN_OUT_INVOICE io inner join drug_info di on io.drug_id=di.drug_id WHERE io.INVOICE_NO=@INVOICE_NO GROUP BY io.INVOICE_NO,io.DRUG_ID";
var invoices = SqlSugarHelper.Db.SqlQueryable(strSql)
.AddParameters(new
@@ -321,8 +322,9 @@ namespace DM_Weight.ViewModels
}
//ChannelStock stock = new ChannelStock();
//查询每种药有多少个批次
- var invoicesManuNo = SqlSugarHelper.Db.Queryable()
- .Where(iManuNo => iManuNo.InvoiceNo == invoices[i].InvoiceNo && iManuNo.DrugId == invoices[i].DrugId && iManuNo.Status == 0 && iManuNo.Type == 2 && iManuNo.CancelFlag == 0).ToList();
+ var invoicesManuNo = SqlSugarHelper.Db.Queryable().Includes(oi => oi.DrugInfo).InnerJoin((oi, di) => oi.DrugId == di.DrugId)
+ .Where(oi => oi.InvoiceNo == invoices[i].InvoiceNo && oi.DrugId == invoices[i].DrugId && oi.Status == 2 && oi.Type == 2 && oi.CancelFlag == 0).ToList();
+
for (int j = 0; j < invoicesManuNo.Count; j++)
{
//查询是否有库存
@@ -362,7 +364,7 @@ namespace DM_Weight.ViewModels
.Select(it =>
{
var ret = it.First();
- ret.AddQuantity = invoicesManuNo[j].quantity;
+ ret.AddQuantity = invoicesManuNo[j].Units == invoicesManuNo[j].DrugInfo.SmallUnit ? invoicesManuNo[j].quantity : invoicesManuNo[j].quantity * invoicesManuNo[j].DrugInfo.ConvertRatio; ;
return ret;
})
.ToList();
@@ -520,7 +522,11 @@ namespace DM_Weight.ViewModels
{
- ChannelStock it = record[i];
+ ChannelStock it = record[i];
+ if (it.AddQuantity <= 0)
+ {
+ continue;
+ }
if (it.BoardType == 6 && it.PosNo == 0)
{
_portUtil.SetNumCount(it.DrawerNo, it.ColNo, it.AddQuantity);
@@ -619,7 +625,7 @@ namespace DM_Weight.ViewModels
{
// 更新屏显库存
//List singleChannels = record.FindAll(it => it.BoardType != 1);
- List singleChannels = record.Where(it => it.BoardType != 1)
+ List singleChannels = record.Where(it => it.BoardType != 1&&it.AddQuantity>0)
.GroupBy(it => new { it.DrawerNo, it.ColNo })
.Select(it =>
{
@@ -740,9 +746,9 @@ namespace DM_Weight.ViewModels
var sb = new StringBuilder();
//sb.Append("select i.invoice_no as InvoiceNo, i.invoice_date as InvoiceDate, COUNT(i.id) as `Count`, SUM(i.quantity) as quantity, p1.pharmacy_name as PharmacyName1, p2.pharmacy_name as PharmacyName2 from in_out_invoice i");
- sb.Append(" SELECT count(1) as Count, i.InvoiceNo, i.InvoiceDate, sum(i.quantity) as quantity, p1.pharmacy_name as PharmacyName1, p2.pharmacy_name PharmacyName2 from ");
- sb.Append(" (SELECT drug_id,in_pharmacy_id,out_pharmacy_id, invoice_no as InvoiceNo, DATE_FORMAT(Invoice_Date,'%Y-%m-%d') as InvoiceDate, SUM(quantity) as quantity ");
- sb.Append(" FROM in_out_invoice where status=@Status and type=@type and cancel_flag=@CancelFlag GROUP BY invoice_no,drug_id) i ");
+ sb.Append(" SELECT count(1) as Count, i.InvoiceNo, i.InvoiceDate, sum(i.quantity) as quantity , p1.pharmacy_name as PharmacyName1, p2.pharmacy_name PharmacyName2 from ");
+ sb.Append(" (SELECT io.drug_id,io.in_pharmacy_id,io.out_pharmacy_id, io.invoice_no as InvoiceNo, DATE_FORMAT(io.Invoice_Date,'%Y-%m-%d') as InvoiceDate, SUM(IF(di.small_unit=io.units,io.quantity,io.quantity*di.convert_ratio)) as quantity ");
+ sb.Append(" FROM in_out_invoice io inner join drug_info di on io.drug_id=di.drug_id where io.status=@Status and type=@type and io.cancel_flag=@CancelFlag GROUP BY io.invoice_no,io.drug_id) i ");
sb.Append(" inner join ( select c.drug_id as drug_id from channel_list c where c.machine_id = '" + (ConfigurationManager.AppSettings["machineId"] ?? "DM1") + "' group by c.drug_id ) di on di.drug_id = i.drug_id");
sb.Append(" left join pharmacy_info p1 on p1.pharmacy = i.in_pharmacy_id");
sb.Append(" left join pharmacy_info p2 on p2.pharmacy = i.out_pharmacy_id where 1=1");
@@ -766,7 +772,7 @@ namespace DM_Weight.ViewModels
Invoices = SqlSugarHelper.Db.SqlQueryable(sb.ToString())
.AddParameters(new
{
- Status = 0,
+ Status = 2,
type = 2,
CancelFlag = 0,
CreateTime = OrderDate,
diff --git a/DM_Weight/ViewModels/ReturnDrugWindow2ViewModel.cs b/DM_Weight/ViewModels/ReturnDrugWindow2ViewModel.cs
index 41fe93b..cbbafa7 100644
--- a/DM_Weight/ViewModels/ReturnDrugWindow2ViewModel.cs
+++ b/DM_Weight/ViewModels/ReturnDrugWindow2ViewModel.cs
@@ -182,7 +182,7 @@ namespace DM_Weight.ViewModels
public async void OpenOrderDialog()
{
//if (SelectedOrder != null && SelectedOrder.DmStatus == 0 && SelectedOrder.CancelFlag == 0 && SelectedOrder.HisDispFlag == 0)
- if (SelectedOrder != null && SelectedOrder.DmStatus == 1 && SelectedOrder.CancelFlag == 1 && SelectedOrder.HisDispFlag == 1)
+ if (SelectedOrder != null && SelectedOrder.DmStatus == 1 && SelectedOrder.CancelFlag == 1)
{
// 此处延时1毫秒,等待页面渲染
await Task.Delay(TimeSpan.FromMilliseconds(1));
@@ -227,7 +227,7 @@ namespace DM_Weight.ViewModels
.WhereIF(!String.IsNullOrEmpty(SearchValue) && SelectedItem.Code.Equals("PatientId"), oi => oi.PatientId == SearchValue)
.WhereIF(!String.IsNullOrEmpty(ConfigurationManager.AppSettings["storage"]), oi => oi.Pharmacy == ConfigurationManager.AppSettings["storage"])
.Where(oi => oi.DmStatus == 1)
- .Where(oi => oi.HisDispFlag == 1)
+ //.Where(oi => oi.HisDispFlag == 1)
.Where(oi => oi.CancelFlag == 1)
.GroupBy(oi => oi.OrderDate)
.Select(oi => oi)