Parcourir la source

生成工单逻辑调整。

tangdi il y a 3 ans
Parent
commit
c1fd96421d

+ 5 - 0
MicroServices/Business/Business.Application.Contracts/ResourceExamineManagement/Dto/BomChildExamineDto.cs

@@ -25,6 +25,11 @@ namespace Business.ResourceExamineManagement.Dto
         public long? bom_child_id { get; set; }
 
         /// <summary>
+        /// 版本
+        /// </summary>
+        public string version { get; set; }
+
+        /// <summary>
         /// bom编号
         /// </summary>
         public string bom_number { get; set; }

+ 3 - 0
MicroServices/Business/Business.Application.Contracts/ResourceExamineManagement/Dto/PschedDto.cs

@@ -21,6 +21,9 @@ namespace Business.ResourceExamineManagement.Dto
         /// </summary>
         public List<ExamineResult> examines { get; set; }
 
+        /// <summary>
+        /// 物料占用记录
+        /// </summary>
         public List<ic_item_stockoccupy> sklist { get; set; }
     }
 

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

@@ -780,7 +780,7 @@ namespace Business.ResourceExamineManagement
         /// <param name="number">物料编码</param>
         /// <param name="Quantity"></param>
         /// <param name="ParentId"></param>
-        public void GenerateMorder(crm_seorderentry seorderentry, string BomNumber,string version, string number, decimal? Quantity, long? ParentId)
+        public void GenerateMorder(crm_seorderentry seorderentry, string BomNumber,string version, string number, decimal? Quantity, long? ParentId=null)
         {
             //1.库存、在制工单检查完成后 当前BOM需要自制时 产生工单。
 
@@ -1354,18 +1354,21 @@ namespace Business.ResourceExamineManagement
                 CaclMaterialShortage(returnlist, item, count);
             }
 
+            if (returnlist[0].lack_qty > 0)
+            {
+                var seorderentry = _mysql_crm_seorderentry.FindAsync(x => x.Id == orderid).Result;
+                //生成主工单
+                GenerateMorder(seorderentry, returnlist[0].bom_number, returnlist[0].version, returnlist[0].item_number, returnlist[0].lack_qty);
+            }
+
             //这是从上往下展开计算缺料和可制
             calcTest2(returnlist[0], childList, returnlist, sklist);
             //returnlist[0].kz = childList.Min(s => s.kz);//得到最小可制数量。
             //再加个循环,来根据替代关系里的检查结果,根据规则明确使用和生成占用关系。
             CalcIcitem(childList, returnlist, bangid, orderid, input, sklist, plan_date);
+            returnlist[0].kitting_time = childList.Max(s => s.kitting_time);
+            //这里更新产品得满足时间。
 
-            if (returnlist[0].lack_qty > 0)
-            {
-                var seorderentry = _mysql_crm_seorderentry.FindAsync(x => x.Id == orderid).Result;
-                //生成自制工单
-                GenerateMorder(seorderentry, returnlist[0].bom_number, returnlist[0].item_number, returnlist[0].lack_qty);
-            }
         }
 
         /// <summary>