修复bug

This commit is contained in:
18942506660
2024-08-08 14:19:33 +08:00
parent 6239a1e54e
commit 7b7018d1bf
6 changed files with 64 additions and 22 deletions

View File

@@ -183,6 +183,12 @@ namespace WMS.Web.Domain.Entitys
//改变状态
public void ChangeInstockStatus()
{
//明细都作废后 整个单据作废
if (this.Details.Count() == this.Details.Where(w => w.IsRepeal == true).Count())
{
this.Status = InstockStatus.Repeal;
return;
}
//明细中:所有的应入数量之和
var totalAccruedQty = this.Details.Where(x => x.IsRepeal != true).Sum(x => x.AccruedQty);

View File

@@ -161,6 +161,13 @@ namespace WMS.Web.Domain.Entitys
{
if (this.Status == OutStockStatus.Repeal)
return;
//明细都作废后 整个单据作废
if (this.Details.Count() == this.Details.Where(w => w.IsRepeal == true).Count())
{
this.Status = OutStockStatus.Repeal;
return;
}
var details = this.Details.Where(w => w.IsRepeal != true).ToList();
if (details.Where(w => w.RealityQty <= 0).Count() == details.Count())

View File

@@ -527,7 +527,7 @@ namespace WMS.Web.Domain.Services
{
//老物料应收数量修改为0
det.AccruedQty = 0;
det.IsRepeal = true;
}
//操作完后剔除
erp_removeList.Add(erp_data);
@@ -593,14 +593,21 @@ namespace WMS.Web.Domain.Services
else if (details_Groups.Sum(x => x.RealityQtyTotal) >= details_Groups.Sum(x => x.AccruedQtyTotal))
order.Status = InstockStatus.Already;
//明细都作废后 整个单据作废
if (order.Details.Count() == order.Details.Where(w => w.IsRepeal == true).Count())
{
order.Status = InstockStatus.Repeal;
}
});
//2.4金蝶删除的明细要把任务单里的明细应入库数量改为0
data_list.SelectMany(x => x.Details).Where(c => !erp_list.Any(a => a.ErpDetailId == c.ErpDetailId)).ToList().ForEach(x => { x.AccruedQty = 0; });
data_list.SelectMany(x => x.Details).Where(c => !erp_list.Any(a => a.ErpDetailId == c.ErpDetailId))
.ToList()
.ForEach(x => { x.AccruedQty = 0;x.IsRepeal = true; });
//过滤掉已经作废的单据
data_list = data_list.Where(w => w.Status != InstockStatus.Repeal).ToList();
//data_list = data_list.Where(w => w.Status != InstockStatus.Repeal).ToList();
//更新修改时间
data_list.ForEach(f => f.WmsUpdateTime = DateTime.Now);
//2.3.提交任务单的修改

View File

@@ -170,16 +170,30 @@ namespace WMS.Web.Domain.Services
isUpdate = SsynDateComparison(outStockTask, erps);
foreach (var erp in erps)
{
//仓库不同 拆分成不同的
var detail = outStockTask.Details.FirstOrDefault(w => w.MaterialNumber == erp.MaterialNumber);
//如果该明细作废 则不修改了
if (detail != null && detail.IsRepeal == true)
//仓库不同 拆分成不同的 //如果该明细作废 则不修改了
var details = outStockTask.Details.Where(w => w.MaterialNumber == erp.MaterialNumber).ToList();
bool isAdd = false;
if (details.Count() == 0) isAdd = true;
OutStockTaskDetails detail = null;
if (details.Where(w => w.IsRepeal != true).Count() > 0)
{
//操作完后剔除
erp_removeList.Add(erp);
continue;
detail = details.Where(w => w.IsRepeal != true).FirstOrDefault();
isAdd = false;
}
if (detail == null)
if (details.Count() != 0 && details.Count() == details.Where(w => w.IsRepeal == true).Count())
{
//因为出库任务单有合并的情况 所以需要过滤一下
//如果这个明细已经作废,同时金蝶的明细id对不上 则新增一条明细
if (details.SelectMany(s => s.ErpDetails).Where(w => w.Erp_DetailId == erp.Erp_DetailId).Count() == 0)
isAdd = true;
else
{
//操作完后剔除
erp_removeList.Add(erp);
continue;
}
}
if (isAdd == true)
{
//添加一条物料明细
detail = _mapper.Map<OutStockTaskDetails>(erp);
@@ -218,8 +232,9 @@ namespace WMS.Web.Domain.Services
outStockTask.GenerateStatus();
}
}
//过滤掉已作废的单
var update_date_list = data_list.Where(w => update_ids.Contains(w.Id) && w.Status != OutStockStatus.Repeal).ToList();
//
//var update_date_list = data_list.Where(w => update_ids.Contains(w.Id) && w.Status != OutStockStatus.Repeal).ToList();
var update_date_list = data_list.Where(w => update_ids.Contains(w.Id)).ToList();
//更新修改时间
update_date_list.ForEach(f => f.WmsUpdateTime = DateTime.Now);
//2.2.提交修改
@@ -290,6 +305,8 @@ namespace WMS.Web.Domain.Services
//金蝶删除明细数据后 wms对应数据修改为0
ed.AccruedQty = 0;
d.AccruedQty = d.ErpDetails.Sum(s => s.AccruedQty);
if (d.AccruedQty == 0)
d.IsRepeal = true;
isUpdate = true;
}
}