浏览代码

勾选发布

Pengxy 1 年之前
父节点
当前提交
486cafcfb8

+ 33 - 6
MicroServices/Business/Business.Application/ReplenishmentManagement/ReplenishmentAppService.cs

@@ -3572,22 +3572,49 @@ namespace Business.Replenishment
                     mes_Morders.AddRange(mes_Morders_sub);
                 }
             }
-            List<WorkOrdMaster> workMasters = _workOrdMaster.Select(a => mes_Morders.Select(m => m.morder_no).ToList().Contains(a.WorkOrd) && a.Domain == factoryid);
-            for (int i = 0; i < weekPlan.Count; i++)
+            else
             {
-                weekPlan[i].ProductionStatus = "已发布";
-                workMasters.ForEach(b =>
+                //非补货计划关联的工单发布
+                mes_Morders = _mysql_mes_morder.GetListAsync(a => idList.Contains(a.Id) && a.factory_id.ToString() == factoryid).Result;
+                if (mes_Morders != null && mes_Morders.Count > 0)
                 {
-                    if (b.ItemNum == weekPlan[i].ItemNumber && b.WorkOrd == weekPlan[i].ProductionOrder)
+                    List<mes_morder> mes_Morders_sub = _mysql_mes_morder.GetListAsync(a => mes_Morders.Select(p => p.Id).ToList().Contains(a.parent_id.GetValueOrDefault()) && a.factory_id.ToString() == factoryid).Result;
+                    if (mes_Morders_sub != null && mes_Morders_sub.Count > 0)
                     {
-                        b.Status = "p";
+                        mes_Morders.AddRange(mes_Morders_sub);
                     }
+                }
+            }
+            List<WorkOrdMaster> workMasters = _workOrdMaster.Select(a => mes_Morders.Select(m => m.morder_no).ToList().Contains(a.WorkOrd) && a.Domain == factoryid);
+            if (weekPlan.Count == 0)
+            {
+                workMasters.ForEach(b =>
+                {
+                    b.Status = "p";
                 });
                 mes_Morders.ForEach(c =>
                 {
                     c.morder_state = MorderEnum.Initial_state;
                 });
             }
+            else
+            {
+                for (int i = 0; i < weekPlan.Count; i++)
+                {
+                    weekPlan[i].ProductionStatus = "已发布";
+                    workMasters.ForEach(b =>
+                    {
+                        if (b.ItemNum == weekPlan[i].ItemNumber && b.WorkOrd == weekPlan[i].ProductionOrder)
+                        {
+                            b.Status = "p";
+                        }
+                    });
+                    mes_Morders.ForEach(c =>
+                    {
+                        c.morder_state = MorderEnum.Initial_state;
+                    });
+                }
+            }
             //发布计划订单产生的工单
             List<mes_morder> planMo = _mysql_mes_morder.GetListAsync(a => idList.Contains(a.Id) && string.IsNullOrEmpty(a.morder_state) && a.factory_id.ToString() == factoryid).Result;
             if (planMo != null)