tangdi 2 лет назад
Родитель
Сommit
33f827b7ac

+ 16 - 15
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -2628,8 +2628,7 @@ namespace Business.ResourceExamineManagement
             {
                 return "当前任务工厂编号为空,请检查。";
             }
-            //List<string> tsWork = new List<string> { "test", "tcn", "rw" };
-            List<string> tsWork = new List<string> { "test", "rw" };
+            List<string> tsWork = new List<string> { "test", "tcn", "rw" };
             var ordlist = _workOrdMaster.Select(x => x.Domain == domain && (string.IsNullOrEmpty(x.Typed) == true || tsWork.Contains(x.Typed)) && x.Status.ToLower() == "p").ToList();
             List<mes_morder> Mes_Morders = _mysql_mes_morder.GetListAsync(x => ordlist.Select(c=>c.WorkOrd).Contains(x.morder_no) && x.factory_id.ToString() == domain).Result;
 
@@ -3004,7 +3003,7 @@ namespace Business.ResourceExamineManagement
             {
                 DateTime.TryParse(endtime, out etime);
             }*/
-            List<string> tsWork = new List<string> { "test", "rw" };
+            List<string> tsWork = new List<string> { "test", "tcn", "rw" };
             //var ordlist = _workOrdMaster.Select(x => x.Domain == domain && x.OrdDate>= stime && x.OrdDate <= etime && (string.IsNullOrEmpty(x.Typed) == true || tsWork.Contains(x.Typed)) && (x.Status.ToLower() == "p" || x.Status.ToLower() == "r")).ToList();
             var ordlist = _workOrdMaster.Select(x => x.Domain == domain && (string.IsNullOrEmpty(x.Typed) == true || tsWork.Contains(x.Typed)) && (x.Status.ToLower() == "p" || x.Status.ToLower() == "r")).ToList();
 
@@ -3384,8 +3383,8 @@ namespace Business.ResourceExamineManagement
 
             //删除同步Mysql后旧数据
             await DeleteMySqlOldData(sentrys);
-            List<string> tsWork = new List<string> { "试制工单", "返工工单" };
-            List<mo_ic_bom> boms = _ic_bom.GetListAsync(p => mo_Mes_Morders.Where(x=> !tsWork.Contains(x.morder_type)).Select(m => m.bom_number).Contains(p.bom_number) && p.factory_id == param.factoryId && p.company_id == param.company_id && !p.IsDeleted).Result.ToList();
+            
+            List<mo_ic_bom> boms = _ic_bom.GetListAsync(p => mo_Mes_Morders.Select(m => m.bom_number).Contains(p.bom_number) && p.factory_id == param.factoryId && p.company_id == param.company_id && !p.IsDeleted).Result.ToList();
 
             //物料bom
             List<mo_ic_bom> bomlist = new List<mo_ic_bom>();
@@ -3420,6 +3419,7 @@ namespace Business.ResourceExamineManagement
             AsyncItemStockFromWMS(pretreatments);
 
             //增加特殊工单的预处理结果,因为特殊工单是自定义物料清单
+            List<string> tsWork = new List<string> { "试制工单", "返工工单" };
             var specialWork = mo_Mes_Morders.Where(x => tsWork.Contains(x.morder_type)).ToList();
             pretreatments.AddRange(_mysql_b_bom_pretreatment.GetListAsync(s => specialWork.Select(c => c.Id).ToList().Contains(s.sourceid)).Result);
 
@@ -3488,18 +3488,19 @@ namespace Business.ResourceExamineManagement
 
                 //获取当前物料bom数据
                 List<b_bom_pretreatment> itemPrelist = new List<b_bom_pretreatment>();
-                var childBom = boms.Where(p => p.bom_number == item.bom_number).FirstOrDefault();
-                if (childBom != null)
+                //通过工单ID读取,考虑特殊工单的预处理
+                itemPrelist = pretreatments.Where(s => s.sourceid == item.Id).ToList();
+                if (!itemPrelist.Any())
                 {
-                    itemPrelist = pretreatments.Where(s => s.sourceid == childBom.mysql_id).ToList();
-                }
-                else {
-                    itemPrelist = pretreatments.Where(s => s.sourceid == item.Id).ToList();
+                    var childBom = boms.Where(p => p.bom_number == item.bom_number).FirstOrDefault();
+                    if (childBom != null)
+                    {
+                        itemPrelist = pretreatments.Where(s => s.sourceid == childBom.mysql_id).ToList();
+                    }
+                    else {
+                        continue;
+                    }
                 }
-                /*if (tsWork.Contains(item.morder_type))
-                {
-                    itemPrelist = pretreatments.Where(s => s.sourceid == item.Id).ToList();
-                }*/
                 if (!itemPrelist.Any())
                 {
                     continue;