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

+ 52 - 8
MicroServices/Business/Business.Application/ReplenishmentManagement/ReplenishmentAppService.cs

@@ -3107,7 +3107,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, input);
+            await PlanOrderResourceCheck(moList.OrderBy(a=>a.moentry_sys_stime).ToList(), moentryList, bang_id,false, input);
 
             var examine_resultList = _mysql_examine_result.GetListAsync(a => a.bangid == bang_id).Result;
             await _businessDbContext.BulkInsertAsync(moList);
@@ -3122,7 +3122,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);
+                CreateWorkOrdDates(moList, routingOps, workOrdSave, workOrdRoutingSave, workOrdDetails, examine_resultList, childExamineList,false);
             }
 
             if (workOrdSave.Any())
@@ -3709,7 +3709,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)
+        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)
         {
             //工单主表
             WorkOrdMaster workOrd;
@@ -3732,7 +3732,7 @@ namespace Business.Replenishment
                 workOrd.QtyOrded = item.need_number.GetValueOrDefault();
                 workOrd.Period = 1;
                 workOrd.Priority = item.urgent;
-                workOrd.Status = "";
+                workOrd.Status =isyearcheck? "p":"";
                 workOrd.IsActive = true;
                 workOrd.IsConfirm = true;
                 workOrd.CreateTime = DateTime.Now;
@@ -4119,7 +4119,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, InputDto input)
+        public async Task<string> PlanOrderResourceCheck(List<mes_morder> Mes_Morders, List<mes_moentry> moentryList,long bangid,bool isyearcheck, InputDto input)
         {
             if (Mes_Morders.Any())
             {
@@ -4179,7 +4179,7 @@ namespace Business.Replenishment
                 //    _scheduleResultOpMaster.Delete(s => monolist.Contains(s.WorkOrd));
                 //}
                 //只走计划工单
-                var rtn = await OrderKittingCheck(Mes_Morders, moentryList, bangid, true);
+                var rtn = await OrderKittingCheck(Mes_Morders, moentryList, bangid,isyearcheck, true);
             }
             else
             {
@@ -4229,7 +4229,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 planCheck = false)
+        public async Task<PschedDto> OrderKittingCheck(List<mes_morder> mo_Mes_Morders, List<mes_moentry> moentryList,long bangid,bool isyearcheck,bool planCheck = false)
         {
             //资源检查结果
             PschedDto rtn = new PschedDto();
@@ -4430,6 +4430,50 @@ namespace Business.Replenishment
                     try
                     {
                         _businessDbContext.BulkUpdate(mo_Mes_Morders);
+                        if (_CalcBomViewAppService.mordersInsertList.Any())
+                        {
+                            var molist = ObjectMapper.Map<List<mo_mes_morder>, List<mes_morder>>(_CalcBomViewAppService.mordersInsertList);
+                            _businessDbContext.BulkInsert(molist);
+
+                            List<WorkOrdMaster> workOrdSave = new List<WorkOrdMaster>();
+                            List<WorkOrdRouting> workOrdRoutingSave = new List<WorkOrdRouting>();
+                            List<WorkOrdDetail> workOrdDetails = new List<WorkOrdDetail>();
+                            if (molist.Any())
+                            {
+                                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);
+                                if (workOrdSave.Any())
+                                {
+                                    workOrdSave = CalcPriority(workOrdSave, input.factoryId.ToString());
+                                    _businessDbContext.BulkInsert(workOrdSave);
+                                }
+                                var DBworkOrdList = _workOrdMaster.Select(a => workOrdSave.Count > 0 && a.Domain == workOrdSave[0].Domain && workOrdSave.Select(c => c.WorkOrd).Contains(a.WorkOrd));
+                                if (workOrdRoutingSave.Any())
+                                {
+                                    workOrdRoutingSave.ForEach(c =>
+                                    {
+                                        c.WorkOrdMasterRecID = DBworkOrdList.Where(a => a.WorkOrd == c.WorkOrd).First().RecID;
+                                    });
+                                    _businessDbContext.BulkInsert(workOrdRoutingSave);
+                                }
+                                if (workOrdDetails.Any())
+                                {
+                                    workOrdDetails.ForEach(c =>
+                                    {
+                                        c.WorkOrdMasterRecID = DBworkOrdList.Where(a => a.WorkOrd == c.WorkOrd).First().RecID;
+                                    });
+                                    _businessDbContext.BulkInsert(workOrdDetails);
+                                }
+                            }
+                        }
+                        if (_CalcBomViewAppService.moentriesInsertList.Any())
+                        {
+                            var moentrylist = ObjectMapper.Map<List<mo_mes_moentry>, List<mes_moentry>>(_CalcBomViewAppService.moentriesInsertList);
+                            _businessDbContext.BulkInsert(moentrylist);
+                        }
                         if (prmainlist.Any())
                         {
                             var pr_mainlist = ObjectMapper.Map<List<mo_srm_pr_main>, List<srm_pr_main>>(prmainlist);
@@ -5292,7 +5336,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,input);
+            await PlanOrderResourceCheck(moList,moentryList, bangid,true,input);
             return "OK";
         }