Просмотр исходного кода

周生产计划和周补货计划周次对不上问题

Murphy 2 лет назад
Родитель
Сommit
823add4202

+ 9 - 9
MicroServices/Business/Business.Application/ReplenishmentManagement/ReplenishmentAppService.cs

@@ -1727,10 +1727,10 @@ namespace Business.Replenishment
             //更新周补货计划
             List<ReplenishmentWeekPlan> updateRopList = new List<ReplenishmentWeekPlan>();
             List<ReplenishmentWeekPlan> addRopList = new List<ReplenishmentWeekPlan>();
-            //生成12周计划工单
-            var weekPlanTime = GetNextMonday();
+            //生成12周补货计划
             for (int k = 0; k < 12; k++)
             {
+                var weekPlanTime = GetNextMonday();
                 weekPlanTime = weekPlanTime.AddDays(7 * k);
                 string kMonth = $"{weekPlanTime.Year}-{weekPlanTime.Month.ToString("00")}";
                 //如果该10月有发布的2周生产计划,则周补货量=10月补货量-已发布的2周生产计划数量/剩余周次(2)
@@ -1849,7 +1849,7 @@ namespace Business.Replenishment
             Dictionary<string, BomChildExamineDto> subProductItemModel = new Dictionary<string, BomChildExamineDto>();
             for (int k = 0; k < 12; k++)
             {
-                var weekTime = GetNextMonday();
+                var weekTime = GetNextMonday().AddMonths(1);
                 weekTime = weekTime.AddDays(7 * k);
                 string kMonth = $"{weekTime.Year}-{weekTime.Month.ToString("00")}";
                 var monthWeekPlan = planList.Where(a => a.planmonth == kMonth).ToList();
@@ -1902,8 +1902,8 @@ namespace Business.Replenishment
                                 mes_Morder.morder_production_number = Math.Ceiling(itemQty.GetValueOrDefault() / 4);
                                 mes_Morder.need_number = Math.Ceiling(itemQty.GetValueOrDefault() / 4);
                                 //成品半成品取周一为入库时间开始往前推
-                                mes_Morder.moentry_sys_stime = weekTime.AddMonths(1).AddDays(-ProductTime(routingOps, ic_item.number, input.factory_id.ToString(), mes_Morder.need_number.GetValueOrDefault()) - days);
-                                mes_Morder.moentry_sys_etime = weekTime.AddMonths(1).AddDays(-days);
+                                mes_Morder.moentry_sys_stime = weekTime.AddDays(-ProductTime(routingOps, ic_item.number, input.factory_id.ToString(), mes_Morder.need_number.GetValueOrDefault()) - days);
+                                mes_Morder.moentry_sys_etime = weekTime.AddDays(-days);
                                 mes_Morder.remaining_number = 0;
                                 mes_Morder.create_time = DateTime.Now;
                                 mes_Morder.bang_id = bang_id;
@@ -2002,7 +2002,7 @@ namespace Business.Replenishment
             List<string> subItems = new List<string>();
             for (int j = 0; j < 4; j++)
             {
-                var jweekTime = GetNextMonday();
+                var jweekTime = GetNextMonday().AddMonths(1);
                 jweekTime = jweekTime.AddDays(28 * j);
                 string jMonth = $"{jweekTime.Year}-{jweekTime.Month.ToString("00")}";
                 subItems.Add(jMonth);
@@ -2011,7 +2011,7 @@ namespace Business.Replenishment
             //中间件钉匣泡壳四周开一张工单
             for (int i = 0; i < 4; i++)
             {
-                var weekTime = GetNextMonday();
+                var weekTime = GetNextMonday().AddMonths(1);
                 weekTime = weekTime.AddDays(28 * i);
                 string kMonth = $"{weekTime.Year}-{weekTime.Month.ToString("00")}";
                 if (prodLines.Count == 0)
@@ -2066,8 +2066,8 @@ namespace Business.Replenishment
                         mes_Morder.morder_production_number = itemQty;
                         mes_Morder.need_number = itemQty;
                         //成品半成品取周一为入库时间开始往前推
-                        mes_Morder.moentry_sys_stime = weekTime.AddMonths(1).AddDays(-ProductTime(routingOps, subProductItemModel[key].item_number, input.factory_id.ToString(), mes_Morder.need_number.GetValueOrDefault()));
-                        mes_Morder.moentry_sys_etime = weekTime.AddMonths(1);
+                        mes_Morder.moentry_sys_stime = weekTime.AddDays(-ProductTime(routingOps, subProductItemModel[key].item_number, input.factory_id.ToString(), mes_Morder.need_number.GetValueOrDefault()));
+                        mes_Morder.moentry_sys_etime = weekTime;
                         mes_Morder.remaining_number = 0;
                         mes_Morder.create_time = DateTime.Now;
                         mes_Morder.bang_id = bang_id;