1)修改调拨入库时可输入入库数量

2)修改打开抽屉时复制list副本
This commit is contained in:
maqiao 2024-03-18 16:53:47 +08:00
parent 8d8502c734
commit c580e69347
10 changed files with 109 additions and 37 deletions

View File

@ -20,7 +20,7 @@
<!--2023/7/13 药房代码 有则写无则空 -->
<add key="storage" value="" />
<!-- 登录模式 1单人登录2双人登录 -->
<add key="loginMode" value="2" />
<add key="loginMode" value="1" />
<!-- 登录顺序,指定先登录的人的名称有效值只有在登录模式等于2时才会生效 发药人【operator】审核人【reviewer】 -->
<add key="firstLogin" value="operator" />
<!-- 按处方还药或者按取药记录还药 1:处方2药品-->

View File

@ -277,8 +277,14 @@ namespace DM_Weight.ViewModels
List<ChannelStock> channelStocks = grouping.ToList();
channelStocks.ForEach(it => it.process = 1);
_portUtil.SpeakAsync("正在打开" + DrawerNo + "号抽屉");
List<ChannelStock> singleChannels = new List<ChannelStock>();
for (int i = 0; i < channelStocks.Count; i++)
{
ChannelStock copy = TransExpV2<ChannelStock, ChannelStock>.Trans(channelStocks[i]);
singleChannels.Add(copy);
}
List<ChannelStock> singleChannels = channelStocks.GroupBy(it => new
singleChannels = singleChannels.GroupBy(it => new
{
it.DrawerNo,
it.ColNo

View File

@ -320,8 +320,14 @@ namespace DM_Weight.ViewModels
List<ChannelStock> channelStocks = grouping.ToList();
channelStocks.ForEach(it => it.process = 1);
_portUtil.SpeakAsync("正在打开" + DrawerNo + "号抽屉");
List<ChannelStock> singleChannels = new List<ChannelStock>();
for (int i = 0; i < channelStocks.Count; i++)
{
ChannelStock copy = TransExpV2<ChannelStock, ChannelStock>.Trans(channelStocks[i]);
singleChannels.Add(copy);
}
List<ChannelStock> singleChannels = channelStocks.GroupBy(it => new
singleChannels = singleChannels.GroupBy(it => new
{
it.DrawerNo,
it.ColNo

View File

@ -202,15 +202,15 @@ namespace DM_Weight.ViewModels
if ((singleChannels.Count > 0 ? singleChannels[0].BoardType : 1) == 5)
{
List<ChannelStock> ChannelLst = channelStocks.Where(it => it.BoardType != 1)
.GroupBy(it => it.ColNo)
.Select(it =>
{
var ret = it.First();
ret.Quantity = it.Sum(itx => itx.Quantity);
ret.AddQuantity = it.Sum(itx => itx.AddQuantity);
return ret;
}).ToList();
//List<ChannelStock> ChannelLst = channelStocks.Where(it => it.BoardType != 1)
// .GroupBy(it => it.ColNo)
// .Select(it =>
// {
// var ret = it.First();
// ret.Quantity = it.Sum(itx => itx.Quantity);
// ret.AddQuantity = it.Sum(itx => itx.AddQuantity);
// return ret;
// }).ToList();
// 发送加药数量
singleChannels.ForEach(it =>

View File

@ -288,7 +288,7 @@ namespace DM_Weight.ViewModels
List<ChannelStock> iChannelStock = new List<ChannelStock>();
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";
var invoices = SqlSugarHelper.Db.SqlQueryable<InOutInvoice>(strSql)
@ -317,18 +317,18 @@ namespace DM_Weight.ViewModels
//_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
continue;
}
ChannelStock stock = new ChannelStock();
//ChannelStock stock = new ChannelStock();
//查询每种药有多少个批次
var invoicesManuNo = SqlSugarHelper.Db.Queryable<InOutInvoice>()
.Where(iManuNo => iManuNo.InvoiceNo == invoices[i].InvoiceNo && iManuNo.DrugId == invoices[i].DrugId).ToList();
.Where(iManuNo => iManuNo.InvoiceNo == invoices[i].InvoiceNo && iManuNo.DrugId == invoices[i].DrugId && iManuNo.Status == 0 && iManuNo.Type != 2 && iManuNo.CancelFlag == 0).ToList();
for (int j = 0; j < invoicesManuNo.Count; j++)
{
//查询是否有库存
List<ChannelStock> stockList = SqlSugarHelper.Db.Queryable<ChannelStock>()
.Where(cs => cs.ManuNo == invoicesManuNo[j].DrugManuNo && cs.DrugId == invoicesManuNo[j].DrugId && cs.MachineId == (ConfigurationManager.AppSettings["machineId"] ?? "DM1")).ToList();
stock = stockList.Count > 0 ? stockList[0] : new ChannelStock();
//stock = stockList.Count > 0 ? stockList[0] : new ChannelStock();
List<DrugManuNo> manuNoList = SqlSugarHelper.Db.Queryable<DrugManuNo>().Where(dm => dm.ManuNo == invoicesManuNo[j].DrugManuNo && dm.DrugId == invoicesManuNo[j].DrugId).ToList();
if (stock == null || stock.Id is null)
if (stockList == null || stockList.Count<=0)
{
if (manuNoList == null || manuNoList.Count <= 0)
{
@ -342,6 +342,7 @@ namespace DM_Weight.ViewModels
continue;
}
//没有库存写入一条数据
ChannelStock stock = new ChannelStock();
stock.MachineId = ConfigurationManager.AppSettings["machineId"] ?? "DM1";
stock.DrawerNo = channelLst.DrawerNo;
stock.BoardType = channelLst.BoardType;
@ -351,13 +352,21 @@ namespace DM_Weight.ViewModels
stock.ManuNo = invoicesManuNo[j].DrugManuNo;
stock.EffDate = manuNoList[0].EffDate;
stock.Chnguid = channelLst.Id;
stockList.Add(stock);
}
stock.AddQuantity = invoicesManuNo[j].quantity;
//stock.AddQuantity = invoicesManuNo[j].quantity;
stockList.GroupBy(it =>it.ManuNo)
.Select(it =>
{
var ret = it.First();
ret.AddQuantity = invoicesManuNo[j].quantity;
return ret;
}).ToList();
if (channelLst.channelStocks == null)
{
channelLst.channelStocks = new List<ChannelStock>();
}
channelLst.channelStocks.Add(stock);
channelLst.channelStocks.AddRange(stockList);
}
InOutInvoice copy = TransExpV2<InOutInvoice, InOutInvoice>.Trans(invoices[i]);
@ -390,6 +399,27 @@ namespace DM_Weight.ViewModels
{
if (Status == 0)
{
if (AddChannels == null || AddChannels.Count <= 0)
{
AlertMsg alertMsg = new AlertMsg
{
Message = "请输入入库数量",
Type = MsgType.ERROR,
};
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
return;
}
int totalNum = AddChannels.Sum(add => add.AddQuantity);
if (totalNum != SelectedInvoice.Quantity)
{
AlertMsg alertMsg = new AlertMsg
{
Message = "各批次添加数量要与调拨单药品总数一致!",
Type = MsgType.ERROR,
};
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
return;
}
enumerator.MoveNext();
Status = 1;
OpenOneByOne();
@ -402,7 +432,13 @@ namespace DM_Weight.ViewModels
List<ChannelStock> channelStocks = grouping.ToList();
channelStocks.ForEach(it => it.process = 1);
_portUtil.SpeakAsync("正在打开" + DrawerNo + "号抽屉");
List<ChannelStock> singleChannels = channelStocks.GroupBy(it => new
List<ChannelStock> singleChannels = new List<ChannelStock>();
for (int i = 0; i < channelStocks.Count; i++)
{
ChannelStock copy= TransExpV2<ChannelStock, ChannelStock>.Trans(channelStocks[i]);
singleChannels.Add(copy);
}
singleChannels = singleChannels.GroupBy(it => new
{
it.DrawerNo,
it.ColNo
@ -422,15 +458,15 @@ namespace DM_Weight.ViewModels
if ((singleChannels.Count > 0 ? singleChannels[0].BoardType : 1) == 5)
{
List<ChannelStock> ChannelLst = channelStocks.Where(it => it.BoardType != 1)
.GroupBy(it => it.ColNo)
.Select(it =>
{
var ret = it.First();
ret.Quantity = it.Sum(itx => itx.Quantity);
ret.AddQuantity = it.Sum(itx => itx.AddQuantity);
return ret;
}).ToList();
//List<ChannelStock> ChannelLst = channelStocks.Where(it => it.BoardType != 1)
// .GroupBy(it => it.ColNo)
// .Select(it =>
// {
// var ret = it.First();
// ret.Quantity = it.Sum(itx => itx.Quantity);
// ret.AddQuantity = it.Sum(itx => itx.AddQuantity);
// return ret;
// }).ToList();
// 发送加药数量
singleChannels.ForEach(it =>
{

View File

@ -266,7 +266,13 @@ namespace DM_Weight.ViewModels
_portUtil.SpeakAsync("正在打开" + DrawerNo + "号抽屉");
List<ChannelStock> singleChannels = channelStocks
List<ChannelStock> singleChannels = new List<ChannelStock>();
for (int i = 0; i < channelStocks.Count; i++)
{
ChannelStock copy=TransExpV2<ChannelStock, ChannelStock>.Trans(channelStocks[i]);
singleChannels.Add(copy);
}
singleChannels= singleChannels
.GroupBy(it => new { it.DrawerNo, it.ColNo })
.Select(it =>
{

View File

@ -272,7 +272,13 @@ namespace DM_Weight.ViewModels
_portUtil.SpeakAsync("正在打开" + DrawerNo + "号抽屉");
//List<ChannelStock> singleChannels = channelStocks.FindAll(it => it.BoardType != 1);
List<ChannelStock> singleChannels = channelStocks
List<ChannelStock> singleChannels = new List<ChannelStock>();
for (int i = 0; i < channelStocks.Count; i++)
{
ChannelStock copy = TransExpV2<ChannelStock, ChannelStock>.Trans(channelStocks[i]);
singleChannels.Add(copy);
}
singleChannels=singleChannels
.GroupBy(it => new { it.DrawerNo, it.ColNo })
.Select(it =>
{

View File

@ -193,7 +193,13 @@ namespace DM_Weight.ViewModels
_portUtil.SpeakAsync("正在打开" + DrawerNo + "号抽屉");
List<ChannelStock> singleChannels = channelStocks
List<ChannelStock> singleChannels = new List<ChannelStock>();
for (int i = 0; i < channelStocks.Count; i++)
{
ChannelStock copy = TransExpV2<ChannelStock, ChannelStock>.Trans(channelStocks[i]);
singleChannels.Add(copy);
}
singleChannels= singleChannels
.GroupBy(it => new {
it.DrawerNo, it.ColNo
})

View File

@ -185,7 +185,13 @@ namespace DM_Weight.ViewModels
_portUtil.SpeakAsync("正在打开" + DrawerNo + "号抽屉");
List<ChannelStock> singleChannels = channelStocks
List<ChannelStock> singleChannels = new List<ChannelStock>();
for (int i = 0; i < channelStocks.Count; i++)
{
ChannelStock copy = TransExpV2<ChannelStock, ChannelStock>.Trans(channelStocks[i]);
singleChannels.Add(copy);
}
singleChannels= singleChannels
.GroupBy(it => new { it.DrawerNo, it.ColNo })
.Select(it =>
{

View File

@ -272,12 +272,12 @@
Binding="{Binding Quantity}"
Header="库存"
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>
<DataGridTextColumn Width="100"
<!--<DataGridTextColumn Width="100"
Binding="{Binding AddQuantity}"
Header="添加数量"
IsReadOnly="True"
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>
<!--<DataGridTemplateColumn Width="60">
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"/>-->
<DataGridTemplateColumn Width="60">
<DataGridTemplateColumn.Header>
<TextBlock Text="添加数量" TextWrapping="Wrap"/>
</DataGridTemplateColumn.Header>
@ -294,7 +294,7 @@
</TextBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>-->
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>