|
|
@@ -4747,7 +4747,7 @@ namespace Business.Replenishment
|
|
|
//删除同步Mysql后旧数据
|
|
|
await DeleteMySqlOldData(sentrys);
|
|
|
|
|
|
- List<mo_ic_bom> boms = _ic_bom.GetListAsync(p => mo_Mes_Morders.Select(m => m.bom_number).Contains(p.bom_number) && p.factory_id == input.factoryId && !p.IsDeleted).Result.ToList();
|
|
|
+ List<mo_ic_bom> boms = _ic_bom.GetListAsync(p => mo_Mes_Morders.Select(m => m.bom_number).Distinct().ToList().Contains(p.bom_number) && p.factory_id == input.factoryId && !p.IsDeleted).Result.ToList();
|
|
|
|
|
|
//物料bom
|
|
|
List<mo_ic_bom> bomlist = new List<mo_ic_bom>();
|
|
|
@@ -4765,7 +4765,7 @@ namespace Business.Replenishment
|
|
|
List<mo_ic_item_stockoccupy> sklist = new List<mo_ic_item_stockoccupy>();
|
|
|
|
|
|
//sorder=null 是因为齐套检查不需要生成工单、采购、委外等信息,所以不需要关联的工单信息传递进去。
|
|
|
- var pretreatments = _mysql_b_bom_pretreatment.GetListAsync(s => boms.Select(c => c.mysql_id).ToList().Contains(s.sourceid)).Result;
|
|
|
+ var pretreatments = _mysql_b_bom_pretreatment.GetListAsync(s => boms.Select(c => c.mysql_id).Distinct().ToList().Contains(s.sourceid)).Result;
|
|
|
List<mo_ic_bom> autoCreates = new List<mo_ic_bom>();
|
|
|
boms.ForEach(p =>
|
|
|
{
|
|
|
@@ -5565,12 +5565,12 @@ namespace Business.Replenishment
|
|
|
//TODO:申老师明确后续需要调整 根据需要使用的字段,来同步表数据。
|
|
|
|
|
|
//同步物料库存数据 根据预处理,来只找出部分数据同步。
|
|
|
- List<long> itemIds = pretreatments.Select(s => s.item_id.GetValueOrDefault()).ToList();
|
|
|
+ List<long> itemIds = pretreatments.Select(s => s.item_id.GetValueOrDefault()).Distinct().ToList();
|
|
|
//var icitemStokc = _mysql_ic_item_stock.GetListAsync(p => p.tenant_id == tenantId && p.factory_id == factoryId).Result;
|
|
|
- var icitemStokc = _mysql_ic_item_stock.GetListAsync(p => p.company_id == companyId && itemIds.Contains(p.icitem_id)).Result;
|
|
|
+ var icitemStokc = _mysql_ic_item_stock.GetListAsync(p => itemIds.Contains(p.icitem_id) && p.company_id == companyId).Result;
|
|
|
if (icitemStokc.Count > 0)
|
|
|
{
|
|
|
- List<string> numbers = pretreatments.Select(s => s.item_number).ToList();
|
|
|
+ List<string> numbers = pretreatments.Select(s => s.item_number).Distinct().ToList();
|
|
|
var locationRange = _configurationItem.Select(x => x.FldName == "MRPLocationRange" && x.Domain == factoryId.ToString()).FirstOrDefault();
|
|
|
|
|
|
List<string> locationList = new List<string> { "1000", "1001", "5008", "8000", "8001" };
|
|
|
@@ -5579,7 +5579,7 @@ namespace Business.Replenishment
|
|
|
locationList = locationRange.Val.SplitToArray(",").ToList();
|
|
|
}
|
|
|
var locStock = _invMaster.Select(a => numbers.Contains(a.ItemNum) && a.IsActive && a.Domain == factoryId.ToString() && locationList.Contains(a.Location));
|
|
|
- var sapInvList = _SAPInv.Select(a => a.WERKS == factoryId.ToString() && numbers.Contains(a.MATNR) && (a.SOBKZ.ToUpper() == "O" || locationList.Contains(a.LGORT)));
|
|
|
+ var sapInvList = _SAPInv.Select(a => numbers.Contains(a.MATNR) && a.WERKS == factoryId.ToString() && (a.SOBKZ.ToUpper() == "O" || locationList.Contains(a.LGORT)));
|
|
|
|
|
|
//设置当前计算bangid
|
|
|
icitemStokc.ForEach(item => {
|
|
|
@@ -5664,7 +5664,7 @@ namespace Business.Replenishment
|
|
|
}
|
|
|
|
|
|
//工单主表
|
|
|
- var mes_morder = _mysql_mes_morder.GetListAsync(x => string.IsNullOrEmpty(x.morder_state) == false && x.morder_state != "完成" && x.company_id == companyId && string.IsNullOrEmpty(x.analogcalcversion) == true && x.factory_id == factoryId && workordmsters.Select(c => c.WorkOrd).Contains(x.morder_no)).Result;
|
|
|
+ var mes_morder = _mysql_mes_morder.GetListAsync(x => string.IsNullOrEmpty(x.morder_state) == false && x.morder_state != "完成" && x.company_id == companyId && string.IsNullOrEmpty(x.analogcalcversion) && x.factory_id == factoryId && workordmsters.Select(c => c.WorkOrd).Contains(x.morder_no)).Result;
|
|
|
if (mes_morder.Count > 0)
|
|
|
{
|
|
|
mes_morder.ForEach(item => { item.bang_id = bangid; });
|