Browse Source

年度和周计划PR标识

Murphy 2 năm trước cách đây
mục cha
commit
10b2936c47

+ 19 - 14
MicroServices/Business/Business.Application/ReplenishmentManagement/ReplenishmentAppService.cs

@@ -1809,6 +1809,7 @@ namespace Business.Replenishment
                 pretreatments = _mysql_b_bom_pretreatment.GetListAsync(s => boms.Select(c => c.mysql_id).ToList().Contains(s.sourceid)).Result;
             }
 
+            routingOps = _routingOpDetail.Select(p => p.Domain ==input.factory_id.ToString()).ToList();
             //更新周补货计划
             List<ReplenishmentWeekPlan> updateRopList = new List<ReplenishmentWeekPlan>();
             List<ReplenishmentWeekPlan> addRopList = new List<ReplenishmentWeekPlan>();
@@ -3107,7 +3108,7 @@ namespace Business.Replenishment
                 weekPlan[i].ProductionOrder = morder_noList[i].NbrResult;
                 weekPlan[i].OrderNO = OrderNOList[i].NbrResult;
             }
-            await PlanOrderResourceCheck(moList.OrderBy(a=>a.moentry_sys_stime).ToList(), moentryList, bang_id,false, input);
+            await PlanOrderResourceCheck(moList.OrderBy(a=>a.moentry_sys_stime).ToList(), moentryList, bang_id,"", input);
 
             var examine_resultList = _mysql_examine_result.GetListAsync(a => a.bangid == bang_id).Result;
             await _businessDbContext.BulkInsertAsync(moList);
@@ -3122,7 +3123,7 @@ namespace Business.Replenishment
                 moList.ForEach(s => { s.create_time = DateTime.Now; });
                 List<b_bom_child_examine> childExamineList = _mysql_bom_child_examine.GetListAsync(c => examine_resultList.Select(x => x.Id).Contains(c.examine_id.GetValueOrDefault())).Result;
                 //同步工单
-                CreateWorkOrdDates(moList, routingOps, workOrdSave, workOrdRoutingSave, workOrdDetails, examine_resultList, childExamineList,false);
+                CreateWorkOrdDates(moList, routingOps, workOrdSave, workOrdRoutingSave, workOrdDetails, examine_resultList, childExamineList);
             }
 
             if (workOrdSave.Any())
@@ -3709,7 +3710,7 @@ namespace Business.Replenishment
         /// </summary>
         /// <param name="morders"></param>
         /// <param name="allRoutings">工艺路线数据</param>
-        public void CreateWorkOrdDates(List<mes_morder> morders, List<RoutingOpDetail> allRoutings, List<WorkOrdMaster> workOrds, List<WorkOrdRouting> workOrdRoutings, List<WorkOrdDetail> workOrdDetails, List<b_examine_result> exmResult, List<b_bom_child_examine> childExamineList,bool isyearcheck)
+        public void CreateWorkOrdDates(List<mes_morder> morders, List<RoutingOpDetail> allRoutings, List<WorkOrdMaster> workOrds, List<WorkOrdRouting> workOrdRoutings, List<WorkOrdDetail> workOrdDetails, List<b_examine_result> exmResult, List<b_bom_child_examine> childExamineList)
         {
             //工单主表
             WorkOrdMaster workOrd;
@@ -3732,7 +3733,7 @@ namespace Business.Replenishment
                 workOrd.QtyOrded = item.need_number.GetValueOrDefault();
                 workOrd.Period = 1;
                 workOrd.Priority = item.urgent;
-                workOrd.Status =isyearcheck? "p":"";
+                workOrd.Status ="";
                 workOrd.IsActive = true;
                 workOrd.IsConfirm = true;
                 workOrd.CreateTime = DateTime.Now;
@@ -4119,7 +4120,7 @@ namespace Business.Replenishment
         /// </summary>
         /// <param name="input"></param>
         /// <returns></returns>
-        public async Task<string> PlanOrderResourceCheck(List<mes_morder> Mes_Morders, List<mes_moentry> moentryList,long bangid,bool isyearcheck, InputDto input)
+        public async Task<string> PlanOrderResourceCheck(List<mes_morder> Mes_Morders, List<mes_moentry> moentryList,long bangid,string analogCalcVersion, InputDto input)
         {
             if (Mes_Morders.Any())
             {
@@ -4179,7 +4180,7 @@ namespace Business.Replenishment
                 //    _scheduleResultOpMaster.Delete(s => monolist.Contains(s.WorkOrd));
                 //}
                 //只走计划工单
-                var rtn = await OrderKittingCheck(Mes_Morders, moentryList, bangid,isyearcheck, true);
+                var rtn = await OrderKittingCheck(Mes_Morders, moentryList, bangid,analogCalcVersion, true);
             }
             else
             {
@@ -4229,7 +4230,7 @@ namespace Business.Replenishment
         /// 工单检查物料齐套
         /// </summary>
         /// <param name="input"></param>
-        public async Task<PschedDto> OrderKittingCheck(List<mes_morder> mo_Mes_Morders, List<mes_moentry> moentryList,long bangid,bool isyearcheck,bool planCheck = false)
+        public async Task<PschedDto> OrderKittingCheck(List<mes_morder> mo_Mes_Morders, List<mes_moentry> moentryList,long bangid,string analogCalcVersion, bool planCheck = false)
         {
             //资源检查结果
             PschedDto rtn = new PschedDto();
@@ -4246,6 +4247,10 @@ namespace Business.Replenishment
             param.factoryId = input.factoryId;
             param.checkflag = false;
             param.checkPlan = planCheck;
+            if(!string.IsNullOrEmpty(analogCalcVersion))
+            {
+                _CalcBomViewAppService.LongPeriod = true;
+            }
 
             /*List<mo_mes_morder> mo_Mes_Morders = _mes_morder.GetManyByCondition(x => x.start_time > DateTime
             .Now.Date.AddDays(1) && x.start_time < DateTime
@@ -4430,7 +4435,8 @@ namespace Business.Replenishment
                     try
                     {
                         _businessDbContext.BulkUpdate(mo_Mes_Morders);
-                        if (_CalcBomViewAppService.mordersInsertList.Any())
+                        //长周期都是成品检查,生成的都是中间件工单,不需要写入;周计划包含中间件工单,需要写入
+                        if (_CalcBomViewAppService.mordersInsertList.Any() && string.IsNullOrEmpty(analogCalcVersion))
                         {
                             var molist = ObjectMapper.Map<List<mo_mes_morder>, List<mes_morder>>(_CalcBomViewAppService.mordersInsertList);
                             _businessDbContext.BulkInsert(molist);
@@ -4442,9 +4448,7 @@ namespace Business.Replenishment
                             {
                                 molist.ForEach(s => { s.create_time = DateTime.Now;s.factory_id = input.factoryId;s.company_id = input.company_id; });
                                 //同步工单
-                                var routings=_routingOpDetail.Select(r => molist.Select(a => a.product_code).Distinct().ToList().Contains(r.RoutingCode) && r.Domain == input.factoryId.ToString());
-                                routings.AddRange(routingOps);
-                                CreateWorkOrdDates(molist, routings, workOrdSave, workOrdRoutingSave, workOrdDetails, new List<b_examine_result>(), new List<b_bom_child_examine>(),true);
+                                CreateWorkOrdDates(molist, routingOps, workOrdSave, workOrdRoutingSave, workOrdDetails, new List<b_examine_result>(), new List<b_bom_child_examine>());
                                 if (workOrdSave.Any())
                                 {
                                     workOrdSave = CalcPriority(workOrdSave, input.factoryId.ToString());
@@ -4469,7 +4473,7 @@ namespace Business.Replenishment
                                 }
                             }
                         }
-                        if (_CalcBomViewAppService.moentriesInsertList.Any())
+                        if (_CalcBomViewAppService.moentriesInsertList.Any() && string.IsNullOrEmpty(analogCalcVersion))
                         {
                             var moentrylist = ObjectMapper.Map<List<mo_mes_moentry>, List<mes_moentry>>(_CalcBomViewAppService.moentriesInsertList);
                             _businessDbContext.BulkInsert(moentrylist);
@@ -4477,6 +4481,7 @@ namespace Business.Replenishment
                         if (prmainlist.Any())
                         {
                             var pr_mainlist = ObjectMapper.Map<List<mo_srm_pr_main>, List<srm_pr_main>>(prmainlist);
+                            pr_mainlist.ForEach(a => { a.analogcalcversion = analogCalcVersion;}) ;
                             _businessDbContext.BulkInsert(pr_mainlist);
                         }
                         if (_CalcBomViewAppService.newStockOccList.Any())
@@ -4898,7 +4903,7 @@ namespace Business.Replenishment
             //产线明细
             prodLines = _prodLineDetail.Select(p => itemnums.Contains(p.Part)).ToList();
             //标准工序
-            routingOps = _routingOpDetail.Select(p => itemnums.Contains(p.RoutingCode)).ToList();
+            routingOps = _routingOpDetail.Select(p =>p.Domain== param.factoryId.ToString()).ToList();
             List<string> lines = prodLines.Select(p => p.Line).Distinct().ToList();
             //工作日历
             calendarWorks = _shopCalendarWorkCtr.Select(p => lines.Contains(p.ProdLine)).ToList();
@@ -5336,7 +5341,7 @@ namespace Business.Replenishment
             //await _mysql_mes_morder.InsertManyAsync(moList);
             //await _mysql_mes_moentry.InsertManyAsync(moentryList);
             moList = moList.OrderBy(a => a.moentry_sys_stime).ToList();
-            await PlanOrderResourceCheck(moList,moentryList, bangid,true,input);
+            await PlanOrderResourceCheck(moList,moentryList, bangid,"V1",input);
             return "OK";
         }
 

+ 7 - 0
MicroServices/Business/Business.Domain/MongoDB/SRM/mo_srm_pr_main.cs

@@ -259,5 +259,12 @@ namespace Business.Domain
         /// </summary>
         [Comment("供应类别")]
         public string supplier_type { get; set; }
+
+        /// <summary>
+        /// 模拟计算版本号,不为空为年度长周期,为空为周计划
+        /// </summary>
+        [Comment("模拟计算版本号,不为空为年度长周期,为空为周计划")]
+        [StringLength(80)]
+        public string analogcalcversion { get; set; }
     }
 }

+ 7 - 0
MicroServices/Business/Business.Domain/StructuredDB/SRM/srm_pr_main.cs

@@ -250,5 +250,12 @@ namespace Business.Domain
         /// </summary>
         [Comment("供应类别")]
         public string supplier_type { get; set; }
+
+        /// <summary>
+        /// 模拟计算版本号,不为空为年度长周期,为空为周计划
+        /// </summary>
+        [Comment("模拟计算版本号,不为空为年度长周期,为空为周计划")]
+        [StringLength(80)]
+        public string analogcalcversion { get; set; }
     }
 }