调拨单上批次对应的药在库存里绑定药的都要列出来

This commit is contained in:
maqiao 2024-04-17 16:08:09 +08:00
parent 7fb942977a
commit 0ae94e65ef
1 changed files with 55 additions and 28 deletions

View File

@ -308,7 +308,7 @@ namespace DM_Weight.ViewModels
//.Includes(cl => cl.channelStocks, dr => dr.DrugInfo, d => d.DrugManuNos)
.Where(cl => cl.DrugId == invoices[i].DrugId && cl.MachineId == (ConfigurationManager.AppSettings["machineId"] ?? "DM1")).ToList();
ChannelList channelLst = channelL.Count > 0 ? channelL[0] : null;
if (channelLst == null || channelLst.Id is null)
if (channelL.Count <= 0)
{
//药品未绑定库位,需要先绑药
//AlertMsg alertMsg = new AlertMsg
@ -343,18 +343,45 @@ namespace DM_Weight.ViewModels
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
continue;
}
ChannelStock stock = new ChannelStock();
//没有库存写入一条数据
stock.MachineId = ConfigurationManager.AppSettings["machineId"] ?? "DM1";
stock.DrawerNo = channelLst.DrawerNo;
stock.BoardType = channelLst.BoardType;
stock.DrawerType = channelLst.DrawerType;
stock.ColNo = channelLst.ColNo;
stock.DrugId = channelLst.DrugId;
stock.ManuNo = invoicesManuNo[j].DrugManuNo;
stock.EffDate = manuNoList[0].EffDate;
stock.Chnguid = channelLst.Id;
stockList.Add(stock);
//没有根据药品绑定库位写入数据
for (int k = 0; k < channelL.Count; k++)
{
ChannelStock stock = new ChannelStock();
stock.MachineId = ConfigurationManager.AppSettings["machineId"] ?? "DM1";
stock.DrawerNo = channelL[k].DrawerNo;
stock.BoardType = channelL[k].BoardType;
stock.DrawerType = channelL[k].DrawerType;
stock.ColNo = channelL[k].ColNo;
stock.DrugId = channelL[k].DrugId;
stock.ManuNo = invoicesManuNo[j].DrugManuNo;
stock.EffDate = manuNoList[0].EffDate;
stock.Chnguid = channelL[k].Id;
stockList.Add(stock);
}
}
else
{
//药品有库存,则除了将对应药品批次数据列出来外,还要将当前已绑定的药品下添加上该批次
for (int k = 0; k < channelL.Count; k++)
{
//有库存且批次抽屉库位与将要插入的批次抽屉库位一致则跳过
if(stockList.Where(t=>t.ManuNo== invoicesManuNo[j].DrugManuNo&&t.ColNo== channelL[k].ColNo&&t.DrawerNo== channelL[k].DrawerNo).FirstOrDefault()!=null)
{
continue;
}
ChannelStock stock = new ChannelStock();
stock.MachineId = ConfigurationManager.AppSettings["machineId"] ?? "DM1";
stock.DrawerNo = channelL[k].DrawerNo;
stock.BoardType = channelL[k].BoardType;
stock.DrawerType = channelL[k].DrawerType;
stock.ColNo = channelL[k].ColNo;
stock.DrugId = channelL[k].DrugId;
stock.ManuNo = invoicesManuNo[j].DrugManuNo;
stock.EffDate = manuNoList[0].EffDate;
stock.Chnguid = channelL[k].Id;
stockList.Add(stock);
}
}
//stock.AddQuantity = invoicesManuNo[j].quantity;
//stockList.ForEach(s => s.AddQuantity = invoicesManuNo[j].quantity);
@ -635,22 +662,22 @@ namespace DM_Weight.ViewModels
{
//if (singleChannels[i].BoardType == 5)
//{
List<ChannelStock> channelStockEffDate = SqlSugarHelper.Db.Queryable<ChannelStock>()
.Where(cs => cs.MachineId == singleChannels[i].MachineId)
.Where(cs => cs.DrawerNo == singleChannels[i].DrawerNo)
.Where(cs => cs.ColNo == singleChannels[i].ColNo)
.Where(cs=>cs.Quantity>0)
.OrderBy(cs => cs.EffDate).ToList();
int totalQuantity = channelStockEffDate.Sum(it => it.Quantity);
List<ChannelStock> channelStockEffDate = SqlSugarHelper.Db.Queryable<ChannelStock>()
.Where(cs => cs.MachineId == singleChannels[i].MachineId)
.Where(cs => cs.DrawerNo == singleChannels[i].DrawerNo)
.Where(cs => cs.ColNo == singleChannels[i].ColNo)
.Where(cs => cs.Quantity > 0)
.OrderBy(cs => cs.EffDate).ToList();
int totalQuantity = channelStockEffDate.Sum(it => it.Quantity);
//将库位多批次的总库存数更新标签
_portUtil.WriteQuantity(channelStockEffDate[0].DrawerNo, channelStockEffDate[0].ColNo, totalQuantity);
Thread.Sleep(200);
_portUtil.WriteChannelInfo(6, channelStockEffDate[0].EffDate == null ? "" : channelStockEffDate[0].EffDate, channelStockEffDate[0].DrawerNo, channelStockEffDate[0].ColNo);
Thread.Sleep(200);
_portUtil.WriteChannelInfo(5, channelStockEffDate[0].ManuNo, channelStockEffDate[0].DrawerNo, channelStockEffDate[0].ColNo);
Thread.Sleep(200);
_portUtil.ShowContent(channelStockEffDate[0].DrawerNo, channelStockEffDate[0].ColNo);
//将库位多批次的总库存数更新标签
_portUtil.WriteQuantity(channelStockEffDate[0].DrawerNo, channelStockEffDate[0].ColNo, totalQuantity);
Thread.Sleep(200);
_portUtil.WriteChannelInfo(6, channelStockEffDate[0].EffDate == null ? "" : channelStockEffDate[0].EffDate, channelStockEffDate[0].DrawerNo, channelStockEffDate[0].ColNo);
Thread.Sleep(200);
_portUtil.WriteChannelInfo(5, channelStockEffDate[0].ManuNo, channelStockEffDate[0].DrawerNo, channelStockEffDate[0].ColNo);
Thread.Sleep(200);
_portUtil.ShowContent(channelStockEffDate[0].DrawerNo, channelStockEffDate[0].ColNo);
//}
}
}