Browse Source

代码调整。

tangdi 3 năm trước cách đây
mục cha
commit
475f887712

+ 6 - 1
MicroServices/Business/Business.Application.Contracts/ResourceExamineManagement/Dto/BomChildExamineDto.cs

@@ -14,10 +14,15 @@ namespace Business.ResourceExamineManagement.Dto
     public class BomChildExamineDto
     {
         /// <summary>
-        /// 主键
+        /// 数据库主键
         /// </summary>
         public long id { get; set; }
 
+        /// <summary>
+        /// 本级id
+        /// </summary>
+        public long fid { get; set; }
+
         /// <summary>
         /// 父级
         /// </summary>

+ 1 - 2
MicroServices/Business/Business.Application/BusinessApplicationAutoMapperProfile.cs

@@ -101,8 +101,7 @@ namespace Business
             #endregion
 
             #region Bang
-            CreateMap<BomChildExamineDto, b_bom_child_examine>()
-                .ForMember(d => d.Id, map => map.MapFrom(o => o.id));
+            CreateMap<BomChildExamineDto, b_bom_child_examine>();
 
             CreateMap<BomChildExamineDto, b_bom_pretreatment>()
                 .ForMember(d => d.Id, map => map.MapFrom(o => o.id));

+ 9 - 9
MicroServices/Business/Business.Application/ResourceExamineManagement/CalcBomViewAppService.cs

@@ -145,7 +145,7 @@ namespace Business.ResourceExamineManagement
             returnlist = returnlist.OrderBy(s => s.num_order).ToList();
             var level1Dto = returnlist[0];
             //第二级
-            var childList = returnlist.Where(s => s.parent_id == level1Dto.id && s.type == 0).OrderBy(s => s.num_order).ToList();
+            var childList = returnlist.Where(s => s.parent_id == level1Dto.fid && s.type == 0).OrderBy(s => s.num_order).ToList();
 
             //1.如果主料够的时候,不需要显示替代料的平铺视图,如果主料不够,显示替代料的平铺视图。
             //2.替代策略和替代方式,影响到的是甲乙组概念,替代按主料有限,取代按组的优先级。A与B的替代,则A和B各自会存在一个组。
@@ -439,7 +439,7 @@ namespace Business.ResourceExamineManagement
                     continue;
                 }
                 //循环平铺整个资源检查的物料库存情况、缺料情况,子集缺料需要用父级缺料*子集使用数量-
-                var parent = returnlist.Find(s => s.id == item.parent_id);
+                var parent = returnlist.Find(s => s.fid == item.parent_id);
                 //当前物料总共需要数量
                 item.needCount = parent.needCount * item.qty;
             }
@@ -457,7 +457,7 @@ namespace Business.ResourceExamineManagement
             //从第二级开始循环
             foreach (var item in bzlist)
             {
-                var childList = returnlist.Where(s => s.parent_id == item.id && s.type == 0).ToList();
+                var childList = returnlist.Where(s => s.parent_id == item.fid && s.type == 0).ToList();
 
                 //根据占用情况计算库存
                 Calczykc(item, parent, sockoccupyList, bangid);
@@ -511,7 +511,7 @@ namespace Business.ResourceExamineManagement
         {
             foreach (var item in childList)
             {
-                var parent = returnlist.Find(s => s.id == item.parent_id);
+                var parent = returnlist.Find(s => s.fid == item.parent_id);
                 if (parent.stock_state == 0)
                 {
                     if (childidList.Contains(item.bom_child_id.GetValueOrDefault()))
@@ -558,10 +558,10 @@ namespace Business.ResourceExamineManagement
         public void StartProcessing(BomChildExamineDto item, List<mo_ic_item> icitemlist, List<BomChildExamineDto> returnlist, DateTime
             ? plan_date, crm_seorderentry sentrys, List<mo_ic_item_stockoccupy> sklist, mo_ic_item_stockoccupy itemStockoccupyDto, long bangid, List<long> childidList)
         {
-            var parent = returnlist.Find(s => s.id == item.parent_id);
+            var parent = returnlist.Find(s => s.fid == item.parent_id);
             if (item.lack_qty > 0)
             {
-                var cilList = returnlist.Where(s => s.parent_id == item.id && s.type == item.type).OrderBy(k => k.num_order).ToList();
+                var cilList = returnlist.Where(s => s.parent_id == item.fid && s.type == item.type).OrderBy(k => k.num_order).ToList();
                 //如果缺料,占用库存,然后走采购或自制
                 if (item.sqty > 0)
                 {
@@ -713,7 +713,7 @@ namespace Business.ResourceExamineManagement
             //提取群组关系
             var sublist = returnlist.Where(s => s.parent_id == item.parent_id && s.num == item.num && s.level == item.level).OrderBy(c => c.substitute_all_num).ToList();
             List<BomChildExamineDto> select = new List<BomChildExamineDto>();
-            var parent = returnlist.Find(s => s.id == item.parent_id);
+            var parent = returnlist.Find(s => s.fid == item.parent_id);
             switch (item.substitute_strategy)
             {
                 case 0://整批
@@ -978,7 +978,7 @@ namespace Business.ResourceExamineManagement
                     }
                     else
                     {
-                        var cilList = returnlist.Where(s => s.parent_id == sct.id && s.type == sct.type).OrderBy(k => k.num_order).ToList();
+                        var cilList = returnlist.Where(s => s.parent_id == sct.fid && s.type == sct.type).OrderBy(k => k.num_order).ToList();
 
                         itemStockoccupyDto.quantity = sqty;
                         sklist.Add(itemStockoccupyDto);
@@ -1082,7 +1082,7 @@ namespace Business.ResourceExamineManagement
         public void RecalculationStock(BomChildExamineDto item, List<BomChildExamineDto> returnlist, List<mo_ic_item_stockoccupy> sklist, long bangid)
         {
             //再计算一边占用情况,这里根据父级产品额缺料量*当前子料的使用数量-子料库存量。得出当前子物料的缺料数量
-            var parent = returnlist.Find(s => s.id == item.parent_id);
+            var parent = returnlist.Find(s => s.fid == item.parent_id);
             decimal stockQty = sklist.Where(s => s.icitem_id == item.item_id && s.bang_id == bangid).Sum(p => p.quantity);
             item.sqty = item.sqty - stockQty;
             item.lack_qty = parent.lack_qty * item.qty - item.sqty;

+ 6 - 2
MicroServices/Business/Business.Application/ResourceExamineManagement/PretreatmentAppService.cs

@@ -49,6 +49,7 @@ namespace Business.ResourceExamineManagement
             dto.bom_number = bom.bom_number;
             dto.level = 1;
             dto.id = help.NextId();
+            dto.fid= help.NextId();
             dto.parent_id = help.NextId();
             dto.qty = 1;
             dto.num = "1";
@@ -115,8 +116,9 @@ namespace Business.ResourceExamineManagement
                 {
                     var cdto = new BomChildExamineDto();
                     cdto.id = help.NextId();
+                    cdto.fid= help.NextId();
                     cdto.level = level;
-                    cdto.parent_id = dto.id;
+                    cdto.parent_id = dto.fid;
                     cdto.bom_child_id = c.mysql_id;
                     cdto.qty = c.qty.Value;
                     cdto.backflush = c.backflush;
@@ -143,7 +145,8 @@ namespace Business.ResourceExamineManagement
                         childDto.bom_id = dto.bom_id;
                         childDto.bom_child_id = c.mysql_id;
                         childDto.id = help.NextId();
-                        childDto.parent_id = dto.id;
+                        childDto.fid= help.NextId();
+                        childDto.parent_id = dto.fid;
                         childDto.item_id = icitem.mysql_id;
                         childDto.item_name = icitem.name;
                         childDto.item_number = icitem.number;
@@ -251,6 +254,7 @@ namespace Business.ResourceExamineManagement
                 return;
             }
             dto.id = help.NextId();
+            dto.fid= help.NextId();
             dto.level = toDto.level;
             dto.parent_id = toDto.parent_id;
             dto.item_id = icitem.mysql_id;

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

@@ -565,6 +565,7 @@ namespace Business.ResourceExamineManagement
                 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;
@@ -1270,7 +1271,7 @@ namespace Business.ResourceExamineManagement
                 var detail = ObjectMapper.Map<DayBulletinBoard, b_day_bulletin_board>(item);
                 detail.GenerateNewId(help.NextId());
                 detail.type = type;
-                detail.create_time = DateTime.Now.Date;
+                detail.create_time = DateTime.Now;
                 detail.tenant_id = param.tenantId;
                 detail.factory_id = param.factoryId;
                 daybulletinboards.Add(detail);
@@ -1279,14 +1280,15 @@ namespace Business.ResourceExamineManagement
             {
                 await _businessBangDbContext.b_order_examine_result.BulkInsertAsync(examineList, options => options.InsertKeepIdentity = true);
             }
-            if (orderDetails.Any())
-            {
-                await _businessBangDbContext.b_order_detail.BulkInsertAsync(orderDetails, options => options.InsertKeepIdentity = true);
-            }
             if (daybulletinboards.Any())
             {
                 await _businessBangDbContext.b_day_bulletin_board.BulkInsertAsync(daybulletinboards, options => options.InsertKeepIdentity = true);
             }
+            if (orderDetails.Any())
+            {
+                await _businessBangDbContext.b_order_detail.BulkInsertAsync(orderDetails, options => options.InsertKeepIdentity = true);
+            }
+            
         }
 
         /// <summary>
@@ -1359,7 +1361,7 @@ namespace Business.ResourceExamineManagement
                     cdto.substitute_mode = subitem.substitute_mode;
                     cdto.is_use = subitem.is_use;
                     dto.order_item_list.Add(cdto);
-                    string day = dto.time.ToString("yyyy-MM-dd");
+                    string day = dto.time.ToString("yyyy-MM-dd HH:mm");
                     if (subitem.is_use && subitem.level != 1)
                     {
                         //每日每物料使用情况
@@ -1477,11 +1479,15 @@ namespace Business.ResourceExamineManagement
 
                 //获取当前物料bom数据
                 var childBom = boms.Where(p => p.bom_number == item.bom_number).FirstOrDefault();
-                //bom层级组装
-                var getBomList = _pretreatmentAppService.BomPretreatment(childBom.mysql_id, bomlist, bomchildlist, icitemlist);
-                //bom替代关系组装
-                _pretreatmentAppService.BomSubstitute(getBomList, bomlist, bomchildlist, icitemlist, sublist, suballlist, subdtllist);
-                GenerateSort(getBomList);
+
+                var itemPrelist = pretreatments.Where(s => s.sourceid == childBom.mysql_id).ToList();
+                if (!itemPrelist.Any())
+                {
+                    continue;
+                }
+
+                var getBomList = ObjectMapper.Map<List<b_bom_pretreatment>, List<BomChildExamineDto>>(itemPrelist);
+
                 if (sentry != null)
                 {
                     dtl.sentry_id = sentry.Id;

+ 6 - 0
MicroServices/Business/Bussiness.Model/Bang/b_bom_pretreatment.cs

@@ -23,6 +23,12 @@ namespace Bussiness.Model.Bang
         [Comment("所属BOM")]
         public long sourceid { get; set; }
 
+        /// <summary>
+        /// 本级id
+        /// </summary>
+        [Comment("本级id")]
+        public long fid { get; set; }
+
         /// <summary>
         /// 父级
         /// </summary>