tangdi 2 лет назад
Родитель
Сommit
0faa4fccc8

+ 0 - 1
MicroServices/Business/Business.Application/ResourceExamineManagement/CalcBomViewAppService.cs

@@ -1044,7 +1044,6 @@ namespace Business.ResourceExamineManagement
                         sklist.Add(itemStockoccupyDto);
                         newStockOccList.Add(itemStockoccupyDto);
                     }
-                    idx++;
                 }
             }
             if (parent_lack > 0)

+ 17 - 14
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -12,6 +12,7 @@ using MongoDB.Driver;
 using MongoDB.Driver.Linq;
 using Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
+using Spire.Pdf.General.Render.Decode.Jpeg2000.j2k.wavelet.synthesis;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -537,7 +538,6 @@ namespace Business.ResourceExamineManagement
                 if (!sorders.Any())
                 {
                     new NLogHelper("ResourceExamineAppService").WriteLog("ReceiveResult", "订单数据不存在", _currentTenant.Id.ToString());
-                    //throw new NotImplementedException("订单数据不存在!");
                     return "订单数据不存在";
                 }
                 
@@ -546,7 +546,6 @@ namespace Business.ResourceExamineManagement
                 if (!sentrys.Any())
                 {
                     new NLogHelper("ResourceExamineAppService").WriteLog("ReceiveResult", "订单行数据不存在", _currentTenant.Id.ToString());
-                    //throw new NotImplementedException("订单行数据不存在!");
                     return "订单行数据不存在";
                 }
             }
@@ -556,14 +555,12 @@ namespace Business.ResourceExamineManagement
                 if (!sentrys.Any())
                 {
                     new NLogHelper("ResourceExamineAppService").WriteLog("ReceiveResult", "订单行数据不存在", _currentTenant.Id.ToString());
-                    //throw new NotImplementedException("订单行数据不存在!");
                     return "没有需要检查的订单行。";
                 }
                 sorders = _mysql_crm_seorder.GetListAsync(p => sentrys.Select(s => s.seorder_id).Contains(p.Id) && !p.IsDeleted).Result;
                 if (!sorders.Any())
                 {
                     new NLogHelper("ResourceExamineAppService").WriteLog("ReceiveResult", "订单数据不存在", _currentTenant.Id.ToString());
-                    //throw new NotImplementedException("订单数据不存在!");
                     return "没有需要检查的订单。";
                 }
             }
@@ -1647,7 +1644,7 @@ namespace Business.ResourceExamineManagement
             }
             //获取物料bom明细数据
             //List<mo_ic_bom_child> childList = _ic_bom_child.GetManyByCondition(p => icBoms.Select(m => m.mysql_id).Contains(p.bom_id) && p.use_status == 1 && p.tenant_id == param.tenantId && p.factory_id == param.factoryId && !p.IsDeleted).Result.ToList();
-            List<mo_ic_bom_child> childList = _ic_bom_child.GetListAsync(p => icBoms.Select(m => m.mysql_id).Contains(p.bom_id) && p.company_id == param.company_id && p.factory_id == param.factoryId && !p.IsDeleted).Result.ToList();
+            List<mo_ic_bom_child> childList = _ic_bom_child.GetListAsync(p => icBoms.Select(m => m.mysql_id).Contains(p.bom_id) && p.company_id == param.company_id && !p.IsDeleted).Result.ToList();
             //没有明细数据,终止
             if (childList.Count == 0)
             {
@@ -1661,7 +1658,7 @@ namespace Business.ResourceExamineManagement
                 }
             }
             //通过物料bom明细数据反查物料bom数据
-            var boms = _ic_bom.GetListAsync(p => childList.Select(m => m.icitem_id).ToList().Contains(p.icitem_id) && p.use_status == 1 && p.company_id == param.company_id && p.factory_id == param.factoryId && !p.IsDeleted).Result.ToList();
+            var boms = _ic_bom.GetListAsync(p => childList.Select(m => m.icitem_id).ToList().Contains(p.icitem_id) && p.use_status == 1 && p.company_id == param.company_id && !p.IsDeleted).Result.ToList();
             foreach (var chd in childList)
             {
                 var curBoms = boms.Where(p => p.icitem_id == chd.icitem_id).ToList();
@@ -2290,7 +2287,7 @@ namespace Business.ResourceExamineManagement
                 var rtn = await OrderKittingCheck(Mes_Morders, true);
             }
             else {
-                return JsonConvert.SerializeObject("未查找到对应的计划工单,请联系管理员。");
+                return "未查找到对应的计划工单,请联系管理员。";
             }
             return "ok";
         }
@@ -2345,7 +2342,7 @@ namespace Business.ResourceExamineManagement
             }
             else
             {
-                mo_Mes_Morders = _mysql_mes_morder.GetListAsync(x => companyid == x.company_id.ToString() && x.moentry_sys_stime > DateTime.Now.Date.AddDays(1) && x.moentry_sys_stime <= DateTime.Now.Date.AddDays(day) && x.morder_state == MorderEnum.Initial_state && !x.IsDeleted).Result;
+                mo_Mes_Morders = _mysql_mes_morder.GetListAsync(x => companyid == x.company_id.ToString() && x.moentry_sys_stime >= DateTime.Now.Date.AddDays(1) && x.moentry_sys_stime <= DateTime.Now.Date.AddDays(day) && x.morder_state == MorderEnum.Initial_state && !x.IsDeleted).Result;
             }
 
             List<mes_morder> checkMo = new List<mes_morder>();
@@ -2997,19 +2994,20 @@ namespace Business.ResourceExamineManagement
             GetIcBomData(boms, bomlist, bomchildlist);
 
             //根据明细集合查出所有得替代关系表数据集合
-            List<string> codeList = bomchildlist.Select(c => c.substitute_code).ToList();
+            List<string> codeList = bomchildlist.Select(c => c.substitute_code).Distinct().ToList();
             sublist.AddRange(_ic_substitute.GetListAsync(p => codeList.Contains(p.substitute_code) && !p.IsDeleted).Result);
 
-            List<long> subidlist = sublist.Select(c => c.mysql_id).ToList();
+            List<long> subidlist = sublist.Select(c => c.mysql_id).Distinct().ToList();
             suballlist.AddRange(_ic_substitute_group.GetListAsync(p => subidlist.Contains(p.substitute_group_id) && !p.IsDeleted).Result);
 
-            List<long> suballidlist = suballlist.Select(c => c.mysql_id).ToList();
+            List<long> suballidlist = suballlist.Select(c => c.mysql_id).Distinct().ToList();
             subdtllist.AddRange(_ic_substitute_group_detail.GetListAsync(p => suballidlist.Contains(p.substitute_group_id) && !p.IsDeleted).Result);
 
             //获取物料数据
             List<long> itemIds = bomlist.Select(p => p.icitem_id).ToList();
             itemIds.AddRange(bomchildlist.Select(p => p.icitem_id).ToList());
             itemIds.AddRange(subdtllist.Select(p => p.icitem_id).ToList());
+            itemIds.Distinct();
             icitemlist.AddRange(_ic_item.GetListAsync(p => itemIds.Contains(p.mysql_id) && !p.IsDeleted).Result);
         }
 
@@ -3018,9 +3016,11 @@ namespace Business.ResourceExamineManagement
         /// </summary>
         public void AutoCreateBomBill(string companyid,List<mo_ic_bom> ic_Boms = null)
         {
-            ic_Boms ??= _ic_bom.GetListAsync(p => p.company_id.ToString() == companyid && !p.IsDeleted).Result.ToList();
+            ic_Boms ??= _ic_bom.GetListAsync(p => p.company_id.ToString() == companyid && (p.bom_number == "10100012_V1.0" || p.bom_number == "10100241_V1.0" || p.bom_number == "BOM00042070") && !p.IsDeleted).Result.ToList();
             var pretreatment = _mysql_b_bom_pretreatment.GetListAsync(s => ic_Boms.Select(c => c.mysql_id).ToList().Contains(s.sourceid)).Result;
 
+            param.company_id = long.Parse(companyid);
+
             //物料bom
             List<mo_ic_bom> bomlist = new List<mo_ic_bom>();
             List<mo_ic_bom_child> bomchildlist = new List<mo_ic_bom_child>();
@@ -3031,7 +3031,7 @@ namespace Business.ResourceExamineManagement
             List<mo_ic_substitute_group> suballlist = new List<mo_ic_substitute_group>();
             List<mo_ic_substitute_group_detail> subdtllist = new List<mo_ic_substitute_group_detail>();
             IcItemPretreatment(ic_Boms, bomlist, bomchildlist, icitemlist, sublist, suballlist, subdtllist);
-
+           
             List<b_bom_pretreatment> deleteList = new List<b_bom_pretreatment>();
             List<b_bom_pretreatment> addList = new List<b_bom_pretreatment>();
             foreach (var bom in ic_Boms)
@@ -3057,6 +3057,9 @@ namespace Business.ResourceExamineManagement
                 list.ForEach(s =>
                 {
                     s.sourceid = bom.mysql_id;
+                    s.company_id = bom.company_id;
+                    s.tenant_id = bom.tenant_id;
+                    s.factory_id = bom.factory_id;
                 });
                 addList.AddRange(list);
             }
@@ -3409,7 +3412,7 @@ namespace Business.ResourceExamineManagement
             workOrdMasters = workOrdMasters.Where(p => !noNbrlist.Contains(p.WorkOrd)).ToList();
             if (workOrdMasters.Count == 0)
             {
-                return "当前选择的工单已领料或未排产。";
+                return "当前选择的工单包含已领料或未排产。";
             }
 
             //增加判断当前工单是否进行过齐套检查,并且是仓库齐套

+ 6 - 0
MicroServices/Business/Business.Domain/StructuredDB/Bang/b_bom_pretreatment.cs

@@ -158,6 +158,12 @@ namespace Business.Domain
         [Comment("替代方式")]
         public int substitute_mode { get; set; }
 
+        /// <summary>
+        /// 群组优先级
+        /// </summary>
+        [Comment("群组优先级")]
+        public int? substitute_all_num { get; set; }
+
         /// <summary>
         /// 版本
         /// </summary>