tangdi 2 лет назад
Родитель
Сommit
8a659173fd

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

@@ -28,5 +28,10 @@ namespace Business.ResourceExamineManagement.Dto
         /// 检查入口--用于判断是否需要生成(工单、委外、采购)
         /// 检查入口--用于判断是否需要生成(工单、委外、采购)
         /// </summary>
         /// </summary>
         public bool checkflag { get; set; }
         public bool checkflag { get; set; }
+
+        /// <summary>
+        /// 计划工单需要生产委外、外购
+        /// </summary>
+        public bool checkPlan { get; set; }
     }
     }
 }
 }

+ 9 - 2
MicroServices/Business/Business.Application.Contracts/ResourceExamineManagement/IResourceExamineAppService.cs

@@ -38,14 +38,21 @@ namespace Business.ResourceExamineManagement
         /// </summary>
         /// </summary>
         /// <param name="input"></param>
         /// <param name="input"></param>
         /// <returns></returns>
         /// <returns></returns>
-        Task<string> OrderResourceCheck(OrderCheckDto input);
+        Task<string> OrderResourceCheck(int day, string workOrd);
 
 
         /// <summary>
         /// <summary>
         /// 競덜죕쇱꿴
         /// 競덜죕쇱꿴
         /// </summary>
         /// </summary>
         /// <param name="input"></param>
         /// <param name="input"></param>
         /// <returns></returns>
         /// <returns></returns>
-        Task<string> SubstituteResourceCheck(OrderCheckDto input);
+        Task<string> SubstituteResourceCheck(int day, string workOrd);
+
+        /// <summary>
+        /// 셕뺍묏데펭敬쇱꿴
+        /// </summary>
+        /// <param name="workOrds"></param>
+        /// <returns></returns>
+        Task<string> PlanOrderResourceCheck(string workOrd);
 
 
         /// <summary>
         /// <summary>
         /// BOM헌데툽좆渡뇹잿
         /// BOM헌데툽좆渡뇹잿

+ 10 - 6
MicroServices/Business/Business.Application/ResourceExamineManagement/CalcBomViewAppService.cs

@@ -253,10 +253,10 @@ namespace Business.ResourceExamineManagement
                     //level1Dto.satisfy_time = mooccupylist[0]?.moo_etime;
                     //level1Dto.satisfy_time = mooccupylist[0]?.moo_etime;
                     level1Dto.stock_state = 0;
                     level1Dto.stock_state = 0;
 
 
-                    if (param.checkflag)
+                    if (param.checkflag || (!param.checkflag && param.checkPlan))
                     {
                     {
                         //根据成品属性来判断是自制还是委外还是外购,需要考虑这种场景
                         //根据成品属性来判断是自制还是委外还是外购,需要考虑这种场景
-                        if (level1Dto.erp_cls == 1)
+                        if (level1Dto.erp_cls == 1 && param.checkflag)
                         {
                         {
                             level1Dto.make_qty = level1Dto.lack_qty;
                             level1Dto.make_qty = level1Dto.lack_qty;
                             //生成主工单
                             //生成主工单
@@ -322,6 +322,10 @@ namespace Business.ResourceExamineManagement
 
 
                            
                            
 
 
+                        }
+                        else
+                        {
+                            MatterTileDevelop(level1Dto, childList, returnlist, sklist, bangid, plan_date, sentrys, icitemlist);
                         }
                         }
                     }
                     }
                     else {
                     else {
@@ -671,7 +675,7 @@ namespace Business.ResourceExamineManagement
                 {
                 {
                     //先找在途
                     //先找在途
                     CalcInTransit(sentrys, item, bangid, plan_date.GetValueOrDefault());
                     CalcInTransit(sentrys, item, bangid, plan_date.GetValueOrDefault());
-                    if (item.lack_qty > 0)
+                    if (item.lack_qty > 0 && (param.checkflag || (!param.checkflag && param.checkPlan)))
                     {
                     {
                         //采购申请
                         //采购申请
                         PackageSRMPR(item, bangid, plan_date, sentrys);
                         PackageSRMPR(item, bangid, plan_date, sentrys);
@@ -681,7 +685,7 @@ namespace Business.ResourceExamineManagement
                 {
                 {
                     //先找在途
                     //先找在途
                     CalcInTransit(sentrys, item, bangid, plan_date.GetValueOrDefault());
                     CalcInTransit(sentrys, item, bangid, plan_date.GetValueOrDefault());
-                    if (item.lack_qty > 0)
+                    if (item.lack_qty > 0 && (param.checkflag || (!param.checkflag && param.checkPlan)))
                     {
                     {
                         //先计算末级数据的齐套时间。
                         //先计算末级数据的齐套时间。
                         if (cilList.Count() > 0)
                         if (cilList.Count() > 0)
@@ -1060,7 +1064,7 @@ namespace Business.ResourceExamineManagement
                         {
                         {
                             //先找在途
                             //先找在途
                             CalcInTransit(sentrys, sct, bangid, plan_date.GetValueOrDefault());
                             CalcInTransit(sentrys, sct, bangid, plan_date.GetValueOrDefault());
-                            if (sct.lack_qty > 0)
+                            if (sct.lack_qty > 0 && (param.checkflag || (!param.checkflag && param.checkPlan)))
                             {
                             {
                                 //采购申请
                                 //采购申请
                                 PackageSRMPR(sct, bangid, plan_date, sentrys);
                                 PackageSRMPR(sct, bangid, plan_date, sentrys);
@@ -1070,7 +1074,7 @@ namespace Business.ResourceExamineManagement
                         {
                         {
                             //先找在途
                             //先找在途
                             CalcInTransit(sentrys, sct, bangid, plan_date.GetValueOrDefault());
                             CalcInTransit(sentrys, sct, bangid, plan_date.GetValueOrDefault());
-                            if (sct.lack_qty > 0)
+                            if (sct.lack_qty > 0 && (param.checkflag || (!param.checkflag && param.checkPlan)))
                             {
                             {
                                 //先计算末级数据的齐套时间。
                                 //先计算末级数据的齐套时间。
                                 if (cilList.Count() > 0)
                                 if (cilList.Count() > 0)

+ 306 - 23
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -45,6 +45,9 @@ using Spire.Pdf.General.Render.Decode.Jpeg2000.j2k.codestream;
 using Volo.Abp.ObjectMapping;
 using Volo.Abp.ObjectMapping;
 using SixLabors.ImageSharp;
 using SixLabors.ImageSharp;
 using static System.Formats.Asn1.AsnWriter;
 using static System.Formats.Asn1.AsnWriter;
+using System.Collections;
+using static Spire.Pdf.General.Render.Decode.Jpeg2000.j2k.codestream.HeaderInfo;
+using Spire.Pdf.General.Render.Decode.Jpeg2000.j2k.wavelet.synthesis;
 
 
 namespace Business.ResourceExamineManagement
 namespace Business.ResourceExamineManagement
 {
 {
@@ -610,7 +613,7 @@ namespace Business.ResourceExamineManagement
                 param.sorderId = sorder.Id;
                 param.sorderId = sorder.Id;
                 param.tenantId = input.tenantId;
                 param.tenantId = input.tenantId;
                 param.factoryId = input.factoryId;
                 param.factoryId = input.factoryId;
-                param.checkflag = true;
+                //param.checkflag = true;
                 _morderAppService.param = param;
                 _morderAppService.param = param;
                 _purchaseOrderAppService.param = param;
                 _purchaseOrderAppService.param = param;
                 _CalcBomViewAppService.param = param;
                 _CalcBomViewAppService.param = param;
@@ -2054,18 +2057,63 @@ namespace Business.ResourceExamineManagement
         }
         }
 
 
         /// <summary>
         /// <summary>
-        /// 工单齐套检查
+        /// 计划工单齐套检查
         /// </summary>
         /// </summary>
         /// <param name="input"></param>
         /// <param name="input"></param>
         /// <returns></returns>
         /// <returns></returns>
-        public async Task<string> OrderResourceCheck(OrderCheckDto input)
+        public async Task<string> PlanOrderResourceCheck(string workOrd)
         {
         {
-            var result = await OrderKittingCheck(input);
-            OrderResourceViewDto rtn = DataPackage(result);
-            rtn.DayBulletinBoardList = rtn.DayBulletinBoardList.OrderByDescending(d => d.day).ToList();
-            //保存检查结果
-            SaveExamineResult(rtn.KittingCheckResultList, rtn.DayBulletinBoardList, 1);
-            return JsonConvert.SerializeObject(rtn);
+            List<string> workOrds = workOrd.Split(",").ToList();
+            if (workOrds.Count() == 0)
+            {
+                return "";
+            }
+            List<mes_morder> mo_Mes_Morders = _mysql_mes_morder.GetListAsync(x => workOrds.Contains(x.morder_no)).Result;
+            if (mo_Mes_Morders.Any())
+            {
+                //只走计划工单
+                await OrderKittingCheck(mo_Mes_Morders, true);
+            }
+            else {
+                JsonConvert.SerializeObject("未查找到对应的计划工单,请联系管理员。");
+            }
+            return JsonConvert.SerializeObject("ok");
+        }
+
+        /// <summary>
+        /// 按未来N天工单齐套检查
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        public async Task<string> OrderResourceCheck(int day, string workOrd)
+        {
+            List<mes_morder> mo_Mes_Morders = new List<mes_morder>();
+            if (day == 0)
+            {
+                List<string> workOrds = workOrd.Split(",").ToList();
+                if (workOrds.Count() == 0)
+                {
+                    return "";
+                }
+                mo_Mes_Morders = _mysql_mes_morder.GetListAsync(x => workOrds.Contains(x.morder_no)).Result;
+            }
+            else
+            {
+                mo_Mes_Morders = _mysql_mes_morder.GetListAsync(x => x.start_time > DateTime.Now.Date.AddDays(1) && x.start_time < DateTime.Now.Date.AddDays(day) && x.morder_state != MorderEnum.Accomplish_state && !x.IsDeleted).Result;
+            }
+            //只做库存是否齐套检查
+            if (mo_Mes_Morders.Any())
+            {
+                var rtn = await OrderKittingCheck(mo_Mes_Morders);
+                OrderResourceViewDto result = DataPackage(rtn);
+                result.DayBulletinBoardList = result.DayBulletinBoardList.OrderByDescending(d => d.day).ToList();
+                //保存检查结果
+                SaveExamineResult(result.KittingCheckResultList, result.DayBulletinBoardList, 1);
+                return JsonConvert.SerializeObject("ok");
+            }
+            else {
+                return JsonConvert.SerializeObject("没有需要检查的工单");
+            }
         }
         }
 
 
         /// <summary>
         /// <summary>
@@ -2133,15 +2181,34 @@ namespace Business.ResourceExamineManagement
         /// </summary>
         /// </summary>
         /// <param name="input"></param>
         /// <param name="input"></param>
         /// <returns></returns>
         /// <returns></returns>
-        public async Task<string> SubstituteResourceCheck(OrderCheckDto input)
+        public async Task<string> SubstituteResourceCheck(int day, string workOrd)
         {
         {
-            var result = await OrderKittingCheck(input);
-            OrderResourceViewDto rtn = DataPackage(result, true);
-            rtn.DayBulletinBoardList = rtn.DayBulletinBoardList.OrderByDescending(d => d.day).ToList();
-            //保存检查结果 替代关系不计算每日物料情况
-            SaveExamineResult(rtn.KittingCheckResultList, new List<DayBulletinBoard>(), 2);
-            //SaveExamineResult(rtn.KittingCheckResultList, rtn.DayBulletinBoardList, 2);
-            return JsonConvert.SerializeObject(rtn);
+            List<mes_morder> mo_Mes_Morders = new List<mes_morder>();
+            if (day == 0)
+            {
+                List<string> workOrds = workOrd.Split(",").ToList();
+                if (workOrds.Count() == 0)
+                {
+                    return "";
+                }
+                mo_Mes_Morders = _mysql_mes_morder.GetListAsync(x => workOrds.Contains(x.morder_no)).Result;
+            }
+            else
+            {
+                mo_Mes_Morders = _mysql_mes_morder.GetListAsync(x => x.start_time > DateTime.Now.Date.AddDays(1) && x.start_time < DateTime.Now.Date.AddDays(day) && x.morder_state != MorderEnum.Accomplish_state && !x.IsDeleted).Result;
+            }
+            if (mo_Mes_Morders.Any())
+            {
+                var result = await OrderKittingCheck(mo_Mes_Morders);
+                OrderResourceViewDto rtn = DataPackage(result, true);
+                rtn.DayBulletinBoardList = rtn.DayBulletinBoardList.OrderByDescending(d => d.day).ToList();
+                //保存检查结果 替代关系不计算每日物料情况
+                SaveExamineResult(rtn.KittingCheckResultList, new List<DayBulletinBoard>(), 2);
+                return JsonConvert.SerializeObject(rtn);
+            }
+            else {
+                return JsonConvert.SerializeObject("没有需要检查的工单");
+            }
         }
         }
 
 
         /// <summary>
         /// <summary>
@@ -2231,18 +2298,23 @@ namespace Business.ResourceExamineManagement
         /// 工单检查物料齐套
         /// 工单检查物料齐套
         /// </summary>
         /// </summary>
         /// <param name="input"></param>
         /// <param name="input"></param>
-        public async Task<PschedDto> OrderKittingCheck(OrderCheckDto input)
+        public async Task<PschedDto> OrderKittingCheck(List<mes_morder> mo_Mes_Morders, bool planCheck = false)
         {
         {
             //资源检查结果
             //资源检查结果
             PschedDto rtn = new PschedDto();
             PschedDto rtn = new PschedDto();
             //资源检查明细list
             //资源检查明细list
             List<ExamineResult> examines = new List<ExamineResult>();
             List<ExamineResult> examines = new List<ExamineResult>();
-
+            OrderCheckDto input = new OrderCheckDto();
+            if (mo_Mes_Morders.Any())
+            {
+                input.tenantId = mo_Mes_Morders[0].tenant_id;
+                input.factoryId = mo_Mes_Morders[0].factory_id.GetValueOrDefault();
+            }
             //资源检查入参全局变量赋值
             //资源检查入参全局变量赋值
             param.tenantId = input.tenantId;
             param.tenantId = input.tenantId;
             param.factoryId = input.factoryId;
             param.factoryId = input.factoryId;
             param.checkflag = false;
             param.checkflag = false;
-
+            param.checkPlan = planCheck;
             //生成当前计算bangid
             //生成当前计算bangid
             long bangid = help.NextId();
             long bangid = help.NextId();
 
 
@@ -2252,9 +2324,7 @@ namespace Business.ResourceExamineManagement
 
 
             List<mo_mes_moentry> mo_Mes_Moentries = _mes_moentry.GetManyByCondition(x=> mo_Mes_Morders.Select(s => s.id).Contains(x.moentry_moid.Value)).Result;*/
             List<mo_mes_moentry> mo_Mes_Moentries = _mes_moentry.GetManyByCondition(x=> mo_Mes_Morders.Select(s => s.id).Contains(x.moentry_moid.Value)).Result;*/
 
 
-            List<mes_morder> mo_Mes_Morders = _mysql_mes_morder.GetListAsync(x => x.start_time > DateTime
-            .Now.Date.AddDays(1) && x.start_time < DateTime
-            .Now.Date.AddDays(input.Day) && x.morder_state != MorderEnum.Accomplish_state && !x.IsDeleted && x.tenant_id == param.tenantId).Result;
+
 
 
             List<mes_moentry> mo_Mes_Moentries = _mysql_mes_moentry.GetListAsync(x => mo_Mes_Morders.Select(s => s.Id).Contains(x.moentry_moid.Value)).Result;
             List<mes_moentry> mo_Mes_Moentries = _mysql_mes_moentry.GetListAsync(x => mo_Mes_Morders.Select(s => s.Id).Contains(x.moentry_moid.Value)).Result;
 
 
@@ -2354,6 +2424,218 @@ namespace Business.ResourceExamineManagement
                 examines.Add(dtl);
                 examines.Add(dtl);
             }
             }
             rtn.examines = examines;
             rtn.examines = examines;
+            if (planCheck)
+            {
+                //如果有计划工单,则需要生成pr po oo
+                List<mo_srm_pr_main> prmainlist = new List<mo_srm_pr_main>();
+                if (_CalcBomViewAppService.SRMPRDtoList.Any())
+                {
+                    List<List<mo_srm_pr_main>> prlist = _CalcBomViewAppService.SRMPRDtoList.Where(f => f.srm_Pr_Main != null).Select(s => s.srm_Pr_Main).ToList();
+                    List<mo_srm_pr_main> list = new List<mo_srm_pr_main>();
+
+                    foreach (var pr in prlist)
+                    {
+                        foreach (var item in pr)
+                        {
+                            list.Add(item);
+                            prmainlist.Add(item);
+                        }
+                    }
+                    if (list.Any())
+                        rtn.srm_pr_list = _CalcBomViewAppService.SRMPRDtoList;
+                }
+                var itemsupplierList = _srm_supplier.Find(a => prmainlist.Select(i => i.pr_purchaseid).Contains(a.mysql_id) && a.tenant_id == input.tenantId && a.factory_id == input.factoryId).Result;
+                if (prmainlist.Any())
+                {
+                    var pr_mainlist = ObjectMapper.Map<List<mo_srm_pr_main>, List<srm_pr_main>>(prmainlist);
+                    PoActionListDto poaction = new PoActionListDto();
+
+                    AutoCreatePOFromPR(prmainlist, bangid, icitemlist, itemsupplierList, poaction);
+                    using (var unitOfWork = _unitOfWorkManager.Begin(false, true))
+                    {
+                        try
+                        {
+                            await _srm_pr_main.InsertMany(prmainlist);
+                            _businessDbContext.BulkInsert(pr_mainlist);
+                            if (poaction.mopoMain.Any())
+                            {
+                                await _srm_po_main.InsertMany(poaction.mopoMain);
+                            }
+                            if (poaction.mopolist.Any())
+                            {
+                                await _srm_po_list.InsertMany(poaction.mopolist);
+                            }
+                            if (poaction.poMain.Any())
+                            {
+                                _businessDbContext.BulkInsert(poaction.poMain);
+                            }
+                            if (poaction.polist.Any())
+                            {
+                                _businessDbContext.BulkInsert(poaction.polist);
+                            }
+                            if (poaction.poOccupiesList.Any())
+                            {
+                                var poOccupies = ObjectMapper.Map<List<mo_srm_po_occupy>, List<srm_po_occupy>>(poaction.poOccupiesList);
+                                _businessDbContext.BulkInsert(poOccupies);
+                            }
+
+                            if (poaction.poMasterList.Any())
+                            {
+                                _purOrdMaster.Insert(poaction.poMasterList);
+                                //快开平台用自增列RecId关联,所以需要插入后再查给明细表赋相应的值
+                                List<string> nbrs = poaction.poMasterList.Select(a => a.PurOrd).ToList();
+                                var nbrList = _purOrdMaster.Select(a => a.Domain == "1001" && nbrs.Contains(a.PurOrd));
+                                poaction.poDetailList.ForEach(c =>
+                                {
+                                    c.PurOrdRecID = nbrList.Where(a => a.PurOrd == c.PurOrd).First().RecID;
+                                });
+                                _purOrdDetail.Insert(poaction.poDetailList);
+                            }
+                            await unitOfWork.CompleteAsync();
+                        }
+                        catch (Exception e)
+                        {
+                            unitOfWork.Dispose();
+                            new NLogHelper("ResourceExamineAppService").WriteLog("OrderKittingCheck", "工单检查数据更新失败:" + e.Message, _currentTenant.Id.ToString());
+                        }
+                    }
+                }
+
+                //检查结果写入数据库
+                var b_Examine_Results = ObjectMapper.Map<List<ExamineResult>, List<b_examine_result>>(rtn.examines);
+                List<b_examine_result> examineList = new List<b_examine_result>();
+                List<b_bom_child_examine> bomExamineList = new List<b_bom_child_examine>();
+                List<b_mo_occupy> mooccupyList = new List<b_mo_occupy>();
+                List<b_mo_order> moorderList = new List<b_mo_order>();
+                List<b_ooder> ooderList = new List<b_ooder>();
+                List<b_purchase> purchaseList = new List<b_purchase>();
+                List<b_purchase_occupy> purchaseoccupyList = new List<b_purchase_occupy>();
+
+                foreach (var ex in rtn.examines)
+                {
+                    var b_ex = ObjectMapper.Map<ExamineResult, b_examine_result>(ex);
+                    b_ex.GenerateNewId(help.NextId());// = help.NextId();
+                    if (_CalcBomViewAppService.mordersInsertList.Any())
+                    {
+                        var moentry = _CalcBomViewAppService.moentriesInsertList.Where(s => s.soentry_id == b_ex.sentry_id).FirstOrDefault();
+                        if (moentry != null)
+                        {
+                            var sentryMo = _CalcBomViewAppService.mordersInsertList.Where(s => s.mysql_id == moentry.moentry_moid).FirstOrDefault();
+                            if (sentryMo != null)
+                            {
+                                b_ex.morder_id = sentryMo.mysql_id;
+                                b_ex.morder_no = sentryMo.morder_no;
+                            }
+                        }
+                    }
+                    b_ex.create_time = DateTime.Now;
+                    b_ex.tenant_id = param.tenantId;
+                    b_ex.factory_id = param.factoryId;
+                    examineList.Add(b_ex);
+                    ex.BomChildExamineList.ForEach(s =>
+                    {
+                        var bc_ex = ObjectMapper.Map<BomChildExamineDto, b_bom_child_examine>(s);
+                        bc_ex.GenerateNewId(help.NextId());
+                        bc_ex.examine_id = b_ex.Id;
+                        bc_ex.tenant_id = param.tenantId;
+                        bc_ex.factory_id = param.factoryId;
+                        bc_ex.create_time = DateTime.Now;
+                        bomExamineList.Add(bc_ex);
+
+                        if (s.mo_occupy_list != null)
+                        {
+                            var olist = ObjectMapper.Map<List<mo_occupy>, List<b_mo_occupy>>(s.mo_occupy_list);
+                            olist.ForEach(o =>
+                            {
+                                o.bom_child_examine_id = bc_ex.Id; o.tenant_id = param.tenantId;
+                                o.factory_id = param.factoryId;
+                            });
+                            mooccupyList.AddRange(olist);
+                        }
+                        if (s.make_list != null)
+                        {
+                            var mlist = ObjectMapper.Map<List<moorder>, List<b_mo_order>>(s.make_list);
+                            mlist.ForEach(o =>
+                            {
+                                o.bom_child_examine_id = bc_ex.Id; o.tenant_id = param.tenantId;
+                                o.factory_id = param.factoryId;
+                            });
+                            moorderList.AddRange(mlist);
+                        }
+                        if (s.subcontracting_list != null)
+                        {
+                            var slist = ObjectMapper.Map<List<ooder>, List<b_ooder>>(s.subcontracting_list);
+                            slist.ForEach(o =>
+                            {
+                                o.bom_child_examine_id = bc_ex.Id; o.tenant_id = param.tenantId;
+                                o.factory_id = param.factoryId;
+                            });
+                            ooderList.AddRange(slist);
+                        }
+                        if (s.purchase_list != null)
+                        {
+                            var plist = ObjectMapper.Map<List<purchase>, List<b_purchase>>(s.purchase_list);
+                            plist.ForEach(o =>
+                            {
+                                o.bom_child_examine_id = bc_ex.Id; o.tenant_id = param.tenantId;
+                                o.factory_id = param.factoryId;
+                            });
+                            purchaseList.AddRange(plist);
+                        }
+                        if (s.purchase_occupy_list != null)
+                        {
+                            var purlist = ObjectMapper.Map<List<purchase_occupy>, List<b_purchase_occupy>>(s.purchase_occupy_list);
+                            purlist.ForEach(o =>
+                            {
+                                o.bom_child_examine_id = bc_ex.Id; o.tenant_id = param.tenantId;
+                                o.factory_id = param.factoryId;
+                            });
+                            purchaseoccupyList.AddRange(purlist);
+                        }
+                    });
+                }
+                using (var unitOfWork = _unitOfWorkManager.Begin(false, true))
+                {
+                    try
+                    {
+                        if (examineList.Any())
+                        {
+                            _businessBangDbContext.BulkInsert(examineList);
+                        }
+                        if (bomExamineList.Any())
+                        {
+                            _businessBangDbContext.BulkInsert(bomExamineList.OrderBy(s => s.num_order).ToList());
+                        }
+                        if (mooccupyList.Any())
+                        {
+                            _businessBangDbContext.BulkInsert(mooccupyList);
+                        }
+                        if (moorderList.Any())
+                        {
+                            _businessBangDbContext.BulkInsert(moorderList);
+                        }
+                        if (ooderList.Any())
+                        {
+                            _businessBangDbContext.BulkInsert(ooderList);
+                        }
+                        if (purchaseList.Any())
+                        {
+                            _businessBangDbContext.BulkInsert(purchaseList);
+                        }
+                        if (purchaseoccupyList.Any())
+                        {
+                            _businessBangDbContext.BulkInsert(purchaseoccupyList);
+                        }
+                        await unitOfWork.CompleteAsync();
+                    }
+                    catch (Exception e)
+                    {
+                        new NLogHelper("ResourceExamineAppService").WriteLog("OrderKittingCheck", "工单检查资源检查计算结果数据更新失败:" + e.Message, _currentTenant.Id.ToString());
+                        unitOfWork.Dispose();
+                    }
+                }
+            }
+
             //清空快照数据
             //清空快照数据
             await ClearSnapShot(bangid);
             await ClearSnapShot(bangid);
             return rtn;
             return rtn;
@@ -2947,6 +3229,7 @@ namespace Business.ResourceExamineManagement
                 workOrd.IsConfirm = true;
                 workOrd.IsConfirm = true;
                 workOrd.CreateTime = DateTime.Now;
                 workOrd.CreateTime = DateTime.Now;
                 workOrd.Batch = item.morder_no;
                 workOrd.Batch = item.morder_no;
+                workOrd.Typed = "s";
                 workOrds.Add(workOrd);
                 workOrds.Add(workOrd);
 
 
                 //添加工单工艺路线数据
                 //添加工单工艺路线数据

+ 16 - 5
MicroServices/Business/Business.HttpApi/Controllers/ResourceExamineController.cs

@@ -69,9 +69,9 @@ namespace Business.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [HttpGet]
         [HttpGet]
         [Route("orderresourcecheck")]
         [Route("orderresourcecheck")]
-        public Task<string> OrderResourceCheck(OrderCheckDto input)
+        public Task<string> OrderResourceCheck(int day, string workOrd)
         {
         {
-            return _ResourceExamineAppService.OrderResourceCheck(input);
+            return _ResourceExamineAppService.OrderResourceCheck(day, workOrd);
         }
         }
 
 
         /// <summary>
         /// <summary>
@@ -81,11 +81,22 @@ namespace Business.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [HttpGet]
         [HttpGet]
         [Route("substituteresourcecheck")]
         [Route("substituteresourcecheck")]
-        public Task<string> SubstituteResourceCheck(OrderCheckDto input) 
+        public Task<string> SubstituteResourceCheck(int day, string workOrd)
         {
         {
-            return _ResourceExamineAppService.SubstituteResourceCheck(input);
+            return _ResourceExamineAppService.SubstituteResourceCheck(day, workOrd);
         }
         }
 
 
+        /// <summary>
+        /// 计划工单齐套检查
+        /// </summary>
+        /// <param name="workOrd"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Route("PlanOrderResourceCheck")]
+        public Task<string> PlanOrderResourceCheck(string workOrd)
+        {
+            return _ResourceExamineAppService.PlanOrderResourceCheck(workOrd);
+        }
         /// <summary>
         /// <summary>
         /// BOM清单批量预处理
         /// BOM清单批量预处理
         /// </summary>
         /// </summary>
@@ -95,7 +106,7 @@ namespace Business.Controllers
         [Route("autocreatebombillinterface")]
         [Route("autocreatebombillinterface")]
         public void AutoCreateBomBillInterface()
         public void AutoCreateBomBillInterface()
         {
         {
-             _ResourceExamineAppService.AutoCreateBomBillInterface();
+            _ResourceExamineAppService.AutoCreateBomBillInterface();
         }
         }
     }
     }
 }
 }

+ 6 - 0
MicroServices/Business/Bussiness.Model/Production/WorkOrdMaster.cs

@@ -111,5 +111,11 @@ namespace Business.Model.Production
         /// </summary>
         /// </summary>
         [Comment("ERP工单号")]
         [Comment("ERP工单号")]
         public string? Batch { get; set; }
         public string? Batch { get; set; }
+
+        /// <summary>
+        /// 类型 s,销售 p,计划
+        /// </summary>
+        [Comment("类型")]
+        public string? Typed { get; set; }
     }
     }
 }
 }

+ 1 - 1
MicroServices/Business/Bussiness.MongoModel/SRM/mo_srm_po_occupy.cs

@@ -34,7 +34,7 @@ namespace Business.MongoModel.SRM
         /// 客户订单id
         /// 客户订单id
         /// </summary>
         /// </summary>
         [Comment("客户订单id")]
         [Comment("客户订单id")]
-        public long? bill_no { get; set; }
+        public long? bill_no { get; set; } 
         /// <summary>
         /// <summary>
         /// 类型
         /// 类型
         /// </summary>
         /// </summary>