Kaynağa Gözat

工单不齐套,强制下达开发。

tangdi 2 yıl önce
ebeveyn
işleme
e11aa85cff

+ 33 - 7
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -2351,7 +2351,7 @@ namespace Business.ResourceExamineManagement
         /// </summary>
         /// <param name="input"></param>
         /// <returns></returns>
-        public async Task<string> OrderResourceCheck(List<mes_morder> mo_Mes_Morders,string domain, string userAccount)
+        public async Task<string> OrderResourceCheck(List<mes_morder> mo_Mes_Morders,string domain, string userAccount, bool WordOrdXd=false)
         {
             List<mes_morder> checkMo = new List<mes_morder>();
             //只做库存是否齐套检查
@@ -2446,12 +2446,24 @@ namespace Business.ResourceExamineManagement
                                 }
                                 else {
                                     cmo.MaterialSituation = MorderEnum.CarehouseComplete;
+                                    if (WordOrdXd)
+                                    {
+                                        workords += "," + cmo.morder_no;
+                                        cmo.MaterialSituation = MorderEnum.Preparation;
+                                        cmo.morder_state = MorderEnum.Xd_state;
+                                    }
                                 }
                             }
                             else
                             {
                                 //工单状态为  “仓库不齐套”
                                 cmo.MaterialSituation = MorderEnum.NoCarehouseComplete;
+                                if (WordOrdXd)
+                                {
+                                    workords += "," + cmo.morder_no;
+                                    cmo.morder_state = MorderEnum.Xd_state;
+                                    cmo.MaterialSituation = MorderEnum.Part;
+                                }
                             }
                         }
                     }
@@ -2465,7 +2477,11 @@ namespace Business.ResourceExamineManagement
                 {
                     workords = workords.Substring(1, workords.Length - 1);
                     //如果生成领料单,需清理掉当前工单的占用,然后根据领料单的数据,来生成工单的占用
-                    await CreatePickBill(workords, domain, userAccount);
+                    var rst = await CreatePickBill(workords, domain, userAccount);
+                    if (rst != "ok")
+                    {
+                        return rst;
+                    }
                     var insertList = GetCopyOP(workords, domain);
                     if (insertList.Any())
                     {
@@ -2475,7 +2491,7 @@ namespace Business.ResourceExamineManagement
                 return "ok";
             }
             else {
-                return "没有需要检查的工单";
+                return "没有需要下达的工单";
             }
         }
 
@@ -2586,7 +2602,7 @@ namespace Business.ResourceExamineManagement
                 return await OrderResourceCheck(mo_Mes_Morders, domain, userAccount);
             }
             else { 
-                return "没有需要检查的工单";
+                return "没有需要下达的工单";
             }
         }
 
@@ -2601,12 +2617,22 @@ namespace Business.ResourceExamineManagement
         {
             if (!string.IsNullOrEmpty(workord))
             {
-                List<mes_morder> mo_Mes_Morders = _mysql_mes_morder.GetListAsync(x => domain == x.factory_id.ToString() && x.morder_no == workord && x.morder_state == MorderEnum.Initial_state && !x.IsDeleted).Result;
-                return await OrderResourceCheck(mo_Mes_Morders, domain, userAccount);
+                List<mes_morder> mo_Mes_Morders = _mysql_mes_morder.GetListAsync(x => domain == x.factory_id.ToString() && x.morder_no == workord && !x.IsDeleted).Result;
+                if (mo_Mes_Morders.Any())
+                {
+                    if (!string.IsNullOrEmpty(mo_Mes_Morders[0].morder_state) && mo_Mes_Morders[0].morder_state != MorderEnum.Initial_state)
+                    {
+                        return "工单信息为"+ mo_Mes_Morders[0].morder_state + ",不允许下达。";
+                    }
+                    return await OrderResourceCheck(mo_Mes_Morders, domain, userAccount, true);
+                }
+                else {
+                    return "工单信息不存在,请重新检查。";
+                }
             }
             else
             {
-                return "没有需要检查的工单";
+                return "没有需要下达的工单";
             }
         }
 

+ 4 - 0
MicroServices/Business/Business.Core/Enum/MorderEnum.cs

@@ -94,5 +94,9 @@ namespace Business.Core.Enum
         /// 备料滞后
         /// </summary>
         public const string Lag = "备料滞后";
+        /// <summary>
+        /// 部分备料
+        /// </summary>
+        public const string Part = "部分备料";
     }
 }