交接柜加药有该批次则更新;库存列表显示交接柜库存

This commit is contained in:
maqiao 2025-01-06 09:20:31 +08:00
parent 593b55d53f
commit b58309a583
2 changed files with 54 additions and 34 deletions

View File

@ -40,8 +40,10 @@ namespace DM_Weight.ViewModels
get => _jiaojie_channelStocks; get => _jiaojie_channelStocks;
set => SetProperty(ref _jiaojie_channelStocks, value); set => SetProperty(ref _jiaojie_channelStocks, value);
} }
//交接柜中无该批次添加实体
public List<ChannelStock> AddJJStock = new List<ChannelStock>(); public List<ChannelStock> AddJJStock = new List<ChannelStock>();
//交接柜中有该批次更新实体
public List<ChannelStock> UpdateJJStock = new List<ChannelStock>();
/// <summary> /// <summary>
/// 交接柜的库位信息 /// 交接柜的库位信息
/// </summary> /// </summary>
@ -417,25 +419,25 @@ namespace DM_Weight.ViewModels
.Where(cs => cs.DrawerNo == jiaoStock.DrawerNo && cs.DrugId == jiaoStock.DrugId && cs.ManuNo == csStock.ManuNo && cs.MachineId == "DM5").First(); .Where(cs => cs.DrawerNo == jiaoStock.DrawerNo && cs.DrugId == jiaoStock.DrugId && cs.ManuNo == csStock.ManuNo && cs.MachineId == "DM5").First();
if (jjStockManuNo != null) if (jjStockManuNo != null)
{ {
int addNum = csStock.TakeQuantity;
//有该批次 //有该批次
if (jiaoStock.NeedNum > csStock.TakeQuantity) if (jiaoStock.NeedNum > csStock.TakeQuantity)
{ {
//不够取 //不够取
ChannelStock newStock = new ChannelStock(); ChannelStock newStock = new ChannelStock();
//newStock.Chnguid = jiaoStock.Chnguid;
newStock.Chnguid = jiaoStock.Chnguid; //newStock.BaseQuantity = jiaoStock.BaseQuantity;
newStock.BaseQuantity = jiaoStock.BaseQuantity;
newStock.ManuNo = jiaoStock.ManuNo; newStock.ManuNo = jiaoStock.ManuNo;
newStock.DrawerNo = jiaoStock.DrawerNo; newStock.DrawerNo = jiaoStock.DrawerNo;
newStock.DrugId = jiaoStock.DrugId; newStock.DrugId = jiaoStock.DrugId;
newStock.AddToJJNum = csStock.TakeQuantity; newStock.AddToJJNum = addNum;
newStock.Id = Guid.NewGuid().ToString(); newStock.Id = jjStockManuNo.Id;
newStock.MachineId = jiaoStock.MachineId; //newStock.MachineId = jiaoStock.MachineId;
newStock.Id = Guid.NewGuid().ToString(); //newStock.NeedNum = 0;
newStock.NeedNum = 0; //newStock.Quantity = jiaoStock.Quantity + csStock.TakeQuantity;
AddJJStock.Add(newStock); UpdateJJStock.Add(newStock);
csStock.TakeQuantity = 0; csStock.TakeQuantity = 0;
jiaoStock.NeedNum = jiaoStock.NeedNum- csStock.TakeQuantity; jiaoStock.NeedNum = jiaoStock.NeedNum - csStock.TakeQuantity;
} }
else else
{ {
@ -447,18 +449,18 @@ namespace DM_Weight.ViewModels
//csStockList[j].Quantity = csStock.Quantity - jiaoStock.NeedNum; //csStockList[j].Quantity = csStock.Quantity - jiaoStock.NeedNum;
ChannelStock newStock = new ChannelStock(); ChannelStock newStock = new ChannelStock();
newStock.Chnguid = jiaoStock.Chnguid; //newStock.Chnguid = jiaoStock.Chnguid;
newStock.BaseQuantity = jiaoStock.BaseQuantity; //newStock.BaseQuantity = jiaoStock.BaseQuantity;
newStock.ManuNo = jiaoStock.ManuNo; newStock.ManuNo = jiaoStock.ManuNo;
newStock.DrawerNo = jiaoStock.DrawerNo; newStock.DrawerNo = jiaoStock.DrawerNo;
newStock.DrugId = jiaoStock.DrugId; newStock.DrugId = jiaoStock.DrugId;
newStock.AddToJJNum = jiaoStock.NeedNum; newStock.AddToJJNum = addNum;
newStock.Id = Guid.NewGuid().ToString(); newStock.Id = jjStockManuNo.Id;
newStock.MachineId = jiaoStock.MachineId; //newStock.MachineId = jiaoStock.MachineId;
newStock.Id=Guid.NewGuid().ToString(); //newStock.NeedNum = 0;
newStock.NeedNum = 0; //newStock.Quantity = jiaoStock.Quantity + csStock.TakeQuantity;
AddJJStock.Add(newStock); UpdateJJStock.Add(newStock);
csStock.TakeQuantity = csStock.TakeQuantity-jiaoStock.NeedNum; csStock.TakeQuantity = csStock.TakeQuantity - jiaoStock.NeedNum;
jiaoStock.NeedNum = 0; jiaoStock.NeedNum = 0;
break; break;
} }
@ -477,7 +479,8 @@ namespace DM_Weight.ViewModels
newStock.AddToJJNum = csStock.TakeQuantity; newStock.AddToJJNum = csStock.TakeQuantity;
newStock.Id = Guid.NewGuid().ToString(); newStock.Id = Guid.NewGuid().ToString();
newStock.MachineId = jiaoStock.MachineId; newStock.MachineId = jiaoStock.MachineId;
newStock.NeedNum= 0; newStock.DrawerType = 1;
newStock.NeedNum = 0;
AddJJStock.Add(newStock); AddJJStock.Add(newStock);
jiaoStock.NeedNum = jiaoStock.NeedNum - csStock.TakeQuantity; jiaoStock.NeedNum = jiaoStock.NeedNum - csStock.TakeQuantity;
csStockList[j].TakeQuantity = 0; csStockList[j].TakeQuantity = 0;
@ -494,7 +497,8 @@ namespace DM_Weight.ViewModels
newStock.AddToJJNum = jiaoStock.NeedNum; newStock.AddToJJNum = jiaoStock.NeedNum;
newStock.NeedNum = 0; newStock.NeedNum = 0;
newStock.Id = Guid.NewGuid().ToString(); newStock.Id = Guid.NewGuid().ToString();
newStock.MachineId=jiaoStock.MachineId; newStock.MachineId = jiaoStock.MachineId;
newStock.DrawerType = 1;
AddJJStock.Add(newStock); AddJJStock.Add(newStock);
csStock.TakeQuantity = csStock.TakeQuantity - newStock.AddToJJNum; csStock.TakeQuantity = csStock.TakeQuantity - newStock.AddToJJNum;
break; break;
@ -507,17 +511,33 @@ namespace DM_Weight.ViewModels
.Where(cs => cs.DrawerNo == jiaoStock.DrawerNo) .Where(cs => cs.DrawerNo == jiaoStock.DrawerNo)
.ExecuteCommand(); .ExecuteCommand();
} }
AddJJStock= AddJJStock.GroupBy(jj => new { jj.DrawerNo, jj.DrugId, jj.ManuNo })
.Select(jj => //保存交接柜数据
if (AddJJStock != null && AddJJStock.Count > 0)
{ {
var ret = jj.First(); AddJJStock = AddJJStock.GroupBy(jj => new { jj.DrawerNo, jj.DrugId, jj.ManuNo })
ret.AddToJJNum = jj.Sum(itx => itx.AddToJJNum); .Select(jj =>
return ret; {
}).ToList(); var ret = jj.First();
ret.AddToJJNum = jj.Sum(itx => itx.AddToJJNum);
//保存交接柜数据 return ret;
SqlSugarHelper.Db.Insertable(AddJJStock).ExecuteCommand(); }).ToList();
SqlSugarHelper.Db.Insertable(AddJJStock).ExecuteCommand();
}
if (UpdateJJStock != null && UpdateJJStock.Count > 0)
{
UpdateJJStock = UpdateJJStock.GroupBy(jj => new { jj.DrawerNo, jj.DrugId, jj.ManuNo })
.Select(jj =>
{
var ret = jj.First();
ret.AddToJJNum = jj.Sum(itx => itx.AddToJJNum);
return ret;
}).ToList();
for (int i = 0; i < UpdateJJStock.Count; i++)
{
SqlSugarHelper.Db.Updateable<ChannelStock>().SetColumns(cs => new ChannelStock() { AddToJJNum = UpdateJJStock[i].AddToJJNum }).Where(cs => cs.Id == UpdateJJStock[i].Id).ExecuteCommand();
}
}
//保存注射剂报表信息 //保存注射剂报表信息
for (int j = 0; j < Jiaojie_ChannelStocks.Count; j++) for (int j = 0; j < Jiaojie_ChannelStocks.Count; j++)

View File

@ -198,9 +198,9 @@ namespace DM_Weight.ViewModels
ChannelStocks.Clear(); ChannelStocks.Clear();
List<DrugInfo> q = SqlSugarHelper.Db.Queryable<DrugInfo>() List<DrugInfo> q = SqlSugarHelper.Db.Queryable<DrugInfo>()
.Includes<ChannelStock>(di => di.channelStocks.Where(cs => cs.DrawerType == 1).Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1") && cs.DrugId != null).OrderBy(cs => cs.DrawerNo).OrderBy(cs => cs.ColNo).ToList()) .Includes<ChannelStock>(di => di.channelStocks.Where(cs => cs.DrawerType == 1).Where(cs => (cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1") || cs.MachineId == "DM5") && cs.Quantity > 0 && cs.DrugId != null).OrderBy(cs => cs.DrawerNo).OrderBy(cs => cs.ColNo).ToList())
.WhereIF(!String.IsNullOrEmpty(SearchValue), di => di.DrugName == SearchValue) .WhereIF(!String.IsNullOrEmpty(SearchValue), di => di.DrugName == SearchValue)
.Where(di => di.channelStocks.Any(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1") && cs.DrugId != null)) .Where(di => di.channelStocks.Any(cs =>(cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM3")||cs.MachineId=="DM5" )&&cs.Quantity>0&& cs.DrugId != null))
.OrderBy(cs => cs.DrugId) .OrderBy(cs => cs.DrugId)
.ToList(); .ToList();
Drugs = q; Drugs = q;