Explorar o código

组件周计划

Pengxy hai 1 ano
pai
achega
40efadd96c

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

@@ -3234,6 +3234,7 @@ namespace Business.Replenishment
             }
             Dictionary<string, decimal?> subProductItem = new Dictionary<string, decimal?>();
             Dictionary<string, BomChildExamineDto> subProductItemModel = new Dictionary<string, BomChildExamineDto>();
+            Dictionary<string, string> subProductIds = new Dictionary<string, string>();
             List<ReplenishmentWeekPlan> WeekPlan = new List<ReplenishmentWeekPlan>();
             List<ReplenishmentWeekPlan> SubWeekPlan = new List<ReplenishmentWeekPlan>();
             foreach (var item in weekplans)
@@ -3254,17 +3255,15 @@ namespace Business.Replenishment
                 {
                     if (r.item_number != item.ItemNumber && r.erp_cls == 1 && !string.IsNullOrEmpty(r.bom_number))
                     {
-                        if (r.item_number == "1008081")
-                        {
-                            var isy = 1;
-                        }
                         if (subProductItem.ContainsKey(r.item_number))
                         {
                             subProductItem[r.item_number] += r.needCount;
+                            subProductIds[r.item_number] += "," + item.Id.ToString();
                         }
                         else
                         {
                             subProductItem.Add(r.item_number, r.needCount);
+                            subProductIds.Add(r.item_number,item.Id.ToString());
                             subProductItemModel.Add(r.item_number, r);
                         }
                     }
@@ -3330,6 +3329,7 @@ namespace Business.Replenishment
             foreach (var key in subProductItem.Keys)
             {
                 var itemQty = subProductItem[key];
+                var ParentNeedCount= subProductItem[key];
                 var middle = middleItemList.Find(m => m.ItemNum == key);
                 var curStokc = icitemStokc.Find(s => s.icitem_number == key);
                 var curInProdcut = InProdcutQty.Find(s => s.ItemNumber == key);
@@ -3367,13 +3367,19 @@ namespace Business.Replenishment
                 }
                 else
                 {
+                    //库存加在制满足需求
                     if (curStokcQty + curInProdcutQty > itemQty)
                     {
-                        itemQty = curStokcQty + curInProdcutQty - itemQty - middle.SafetyStk;
+                        itemQty = Math.Ceiling(curStokcQty + curInProdcutQty - itemQty.GetValueOrDefault());
+                        //满足需求后剩余数量不满足安全库存需求
+                        if (itemQty < middle.SafetyStk)
+                        {
+                            itemQty = middle.SafetyStk;
+                        }
                     }
                     else
                     {
-                        itemQty = middle.SafetyStk;
+                        itemQty = Math.Ceiling(itemQty.GetValueOrDefault() -(curStokcQty + curInProdcutQty)+ middle.SafetyStk);
                     }
                 }
                 if (itemQty > 0)
@@ -3470,6 +3476,10 @@ namespace Business.Replenishment
                     weekItem.HeatSealHours = 0;
                     weekItem.PackageHours = 0;
                     weekItem.TotalHours = 0;
+                    weekItem.StokcQty = curStokcQty;
+                    weekItem.ProdcutQty = curInProdcutQty;
+                    weekItem.ParentIds = subProductIds[key];
+                    weekItem.ParentNeedCount = ParentNeedCount.GetValueOrDefault();
 
                     SubWeekPlan.Add(weekItem);
                     weekplans.Add(weekItem);

+ 26 - 0
MicroServices/Business/Business.Domain/StructuredDB/Replenishment/ReplenishmentWeekPlan.cs

@@ -217,5 +217,31 @@ namespace Business.StructuredDB.Replenishment
 
         //计划年月
         public string? PlanMonth { get; set; }
+
+        /// <summary>
+        /// 父计划id   
+        /// </summary>
+        public string ParentIds { get; set; }
+
+        /// <summary>
+        /// 父物料总需求数    
+        /// </summary>
+        [Precision(18, 5)]
+        [Comment("父物料总需求数")]
+        public decimal? ParentNeedCount { get; set; }
+
+        /// <summary>
+        /// 总库存    
+        /// </summary>
+        [Precision(18, 5)]
+        [Comment("总库存")]
+        public decimal? StokcQty { get; set; }
+
+        /// <summary>
+        /// 总在制    
+        /// </summary>
+        [Precision(18, 5)]
+        [Comment("总在制")]
+        public decimal? ProdcutQty { get; set; }
     }
 }

+ 36 - 0
MicroServices/Business/QuartzSettings/logs/logs.txt

@@ -2406,3 +2406,39 @@
 {"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2025-03-12T18:05:47.2282544+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
 {"TaskName":"TestTimeOut","GroupName":"systemquartzjob","BeginDate":"2025-03-12T18:05:47.2332262+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
 {"TaskName":"BOM预处理自动任务","GroupName":"BOM预处理自动任务","BeginDate":"2025-03-12T18:05:47.2350247+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2025-03-13T09:16:08.4050874+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2025-03-13T09:16:08.4606311+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2025-03-13T09:16:08.4657754+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2025-03-13T09:16:08.4674512+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"TestTimeOut","GroupName":"systemquartzjob","BeginDate":"2025-03-13T09:16:08.4732894+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"BOM预处理自动任务","GroupName":"BOM预处理自动任务","BeginDate":"2025-03-13T09:16:08.4756166+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2025-03-13T09:22:34.9826725+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2025-03-13T09:22:35.02158+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2025-03-13T09:22:35.0245652+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2025-03-13T09:22:35.0260072+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"TestTimeOut","GroupName":"systemquartzjob","BeginDate":"2025-03-13T09:22:35.0306811+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"BOM预处理自动任务","GroupName":"BOM预处理自动任务","BeginDate":"2025-03-13T09:22:35.0328041+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2025-03-13T09:25:48.1785284+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2025-03-13T09:25:48.212235+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2025-03-13T09:25:48.2152199+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2025-03-13T09:25:48.2167417+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"TestTimeOut","GroupName":"systemquartzjob","BeginDate":"2025-03-13T09:25:48.2213753+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"BOM预处理自动任务","GroupName":"BOM预处理自动任务","BeginDate":"2025-03-13T09:25:48.2231777+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2025-03-13T10:11:52.1006148+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2025-03-13T10:11:52.1405696+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2025-03-13T10:11:52.1437732+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2025-03-13T10:11:52.1451564+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"TestTimeOut","GroupName":"systemquartzjob","BeginDate":"2025-03-13T10:11:52.1494463+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"BOM预处理自动任务","GroupName":"BOM预处理自动任务","BeginDate":"2025-03-13T10:11:52.1513393+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2025-03-13T10:14:19.873094+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2025-03-13T10:14:19.9099077+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2025-03-13T10:14:19.9131621+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2025-03-13T10:14:19.9148365+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"TestTimeOut","GroupName":"systemquartzjob","BeginDate":"2025-03-13T10:14:19.9192073+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"BOM预处理自动任务","GroupName":"BOM预处理自动任务","BeginDate":"2025-03-13T10:14:19.9209323+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2025-03-13T10:17:50.0577324+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2025-03-13T10:17:50.095318+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2025-03-13T10:17:50.0983765+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2025-03-13T10:17:50.1001371+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"TestTimeOut","GroupName":"systemquartzjob","BeginDate":"2025-03-13T10:17:50.1057113+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"BOM预处理自动任务","GroupName":"BOM预处理自动任务","BeginDate":"2025-03-13T10:17:50.1072352+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}