浏览代码

Merge branch 'master' of http://123.60.180.165:4647/ZZYDOP/DOPCore

zhengly 3 年之前
父节点
当前提交
d4f75d0182

+ 159 - 0
MicroServices/Business/Business.Application.Contracts/ResourceExamineManagement/Dto/BomChildExamineDto.cs

@@ -0,0 +1,159 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Business.ResourceExamineManagement.Dto
+{
+    public class BomChildExamineDto
+    {
+        /// <summary>
+        /// 主键
+        /// </summary>
+        public long id { get; set; }
+
+        /// <summary>
+        /// 父级
+        /// </summary>
+        public long? parent_id { get; set; }
+
+        /// <summary>
+        /// level
+        /// </summary>
+        public int level { get; set; }
+
+        /// <summary>
+        /// 订单行ID
+        /// </summary>
+        public long order_id { get; set; }
+
+        /// <summary>
+        /// BOMid
+        /// </summary>
+        public long bom_id { get; set; }
+
+        /// <summary>
+        /// 序号
+        /// </summary>
+        public int num { get; set; }
+
+        /// <summary>
+        /// 物料id
+        /// </summary>
+        public long item_id { get; set; }
+
+        /// <summary>
+        /// 物料编码
+        /// </summary>
+        public string item_code { get; set; }
+
+        /// <summary>
+        /// 物料名称
+        /// </summary>
+        public string item_name { get; set; }
+
+        /// <summary>
+        /// 规格型号
+        /// </summary>
+        public string model { get; set; }
+
+        /// <summary>
+        /// 物料状态
+        /// </summary>
+        public string item_state { get; set; }
+
+        /// <summary>
+        /// 单位
+        /// </summary>
+        public string unit { get; set; }
+
+        /// <summary>
+        /// 物料属性
+        /// </summary>
+        public string erp_cls { get; set; }
+
+        /// <summary>
+        /// 是否倒冲
+        /// </summary>
+        public int backflush { get; set; }
+
+        /// <summary>
+        /// 单位用量
+        /// </summary>
+        public decimal qty { get; set; }
+
+        /// <summary>
+        /// 订单需求数量
+        /// </summary>
+        public decimal order_qty { get; set; }
+
+        /// <summary>
+        /// 库存数量
+        /// </summary>
+        public decimal sqty { get; set; }
+
+        /// <summary>
+        /// 基于物料可制造数量
+        /// </summary>
+        public decimal can_make_qty { get; set; }
+
+        /// <summary>
+        /// PR
+        /// </summary>
+        public decimal pr_qty { get; set; }
+
+        /// <summary>
+        /// PO
+        /// </summary>
+        public decimal po_qty { get; set; }
+
+        /// <summary>
+        /// 缺料数量
+        /// </summary>
+        public decimal lack_qty { get; set; }
+
+        /// <summary>
+        /// 采购数量
+        /// </summary>
+        public decimal purchase_qty { get; set; }
+
+        /// <summary>
+        /// 自制数量
+        /// </summary>
+        public decimal make_qty { get; set; }
+
+        /// <summary>
+        /// 齐套时间
+        /// </summary>
+        public DateTime kitting_time { get; set; }
+
+        /// <summary>
+        /// 满足时间
+        /// </summary>
+        public DateTime satisfy_time { get; set; }
+
+        /// <summary>
+        /// 计划员
+        /// </summary>
+        public string plan_user { get; set; }
+
+        /// <summary>
+        /// 采购员
+        /// </summary>
+        public string purchase_user { get; set; }
+
+        /// <summary>
+        /// 来源
+        /// </summary>
+        public string source { get; set; }
+
+        /// <summary>
+        /// 是否BOM
+        /// </summary>
+        public int isbom { get; set; }
+
+        
+    }
+}

+ 17 - 13
MicroServices/Business/Business.Application.Contracts/BookManagement/Dto/BomDto.cs → MicroServices/Business/Business.Application.Contracts/ResourceExamineManagement/Dto/BomDto.cs

@@ -5,8 +5,12 @@ using System.ComponentModel;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using Business;
+using Business.BookManagement;
+using Business.BookManagement.Dto;
+using Business.ResourceExamineManagement.Dto;
 
-namespace Business.BookManagement.Dto
+namespace Business.ResourceExamineManagement.Dto
 {
     /// <summary>
     /// BomDto
@@ -20,7 +24,7 @@ namespace Business.BookManagement.Dto
         /// <summary>
         /// bom单编号
         /// </summary>
-        public string? bom_number { get; set; }
+        public string bom_number { get; set; }
         /// <summary>
         /// 物料id
         /// </summary>
@@ -28,11 +32,11 @@ namespace Business.BookManagement.Dto
         /// <summary>
         /// 物料代码
         /// </summary>
-        public string? item_number { get; set; }
+        public string item_number { get; set; }
         /// <summary>
         /// 物料名称
         /// </summary>
-        public string? item_name { get; set; }
+        public string item_name { get; set; }
         /// <summary>
         /// 序号
         /// </summary>
@@ -56,32 +60,32 @@ namespace Business.BookManagement.Dto
         /// <summary>
         /// 工艺名称
         /// </summary>
-        public string? tech_name { get; set; }
+        public string tech_name { get; set; }
 
         /// <summary>
         /// 生产负责人
         /// </summary>
-        public string? product_principal { get; set; }
+        public string product_principal { get; set; }
         /// <summary>
         /// 产品设计员
         /// </summary>
-        public string? product_designer { get; set; }
+        public string product_designer { get; set; }
         /// <summary>
         /// 版本
         /// </summary>
-        public string? version { get; set; }
+        public string version { get; set; }
         /// <summary>
         /// 图表编号
         /// </summary>
-        public string? chartnumber { get; set; }
+        public string chartnumber { get; set; }
         /// <summary>
         /// 图片
         /// </summary>
-        public string? biller { get; set; }
+        public string biller { get; set; }
         /// <summary>
         /// 检验人
         /// </summary>
-        public string? checker { get; set; }
+        public string checker { get; set; }
         /// <summary>
         /// 检验时间
         /// </summary>
@@ -89,7 +93,7 @@ namespace Business.BookManagement.Dto
         /// <summary>
         /// bom创建人
         /// </summary>
-        public string? user { get; set; }
+        public string user { get; set; }
         /// <summary>
         /// bom创建时间
         /// </summary>
@@ -97,6 +101,6 @@ namespace Business.BookManagement.Dto
         /// <summary>
         /// 单位
         /// </summary>
-        public string? unit { get; set; }
+        public string unit { get; set; }
     }
 }

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

@@ -1,5 +1,5 @@
 using AutoMapper;
-using Business.BookManagement.Dto;
+using Business.ResourceExamineManagement.Dto;
 using Bussiness.Model.MES.IC;
 
 namespace Business
@@ -9,6 +9,7 @@ namespace Business
         public BusinessApplicationAutoMapperProfile()
         {
             CreateMap<ic_bom, BomDto>();
+            CreateMap<ic_bom, BomChildExamineDto>();
         }
     }
 }

+ 79 - 6
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -13,6 +13,10 @@ using XCZ;
 using Business.ResourceExamineManagement.Dto;
 using Bussiness.Model.MES.IC;
 using AutoMapper.Internal.Mappers;
+using Business.Core.Utilities;
+using Hangfire.Storage.Monitoring;
+using Business.BookManagement.Dto;
+using Volo.Abp.ObjectMapping;
 
 namespace Business.ResourceExamineManagement
 {
@@ -21,14 +25,17 @@ namespace Business.ResourceExamineManagement
 
         private IRepository<ic_item, long> _ic_item;
         private IRepository<ic_bom, long> _ic_bom;
+        private IRepository<ic_bom_child, long> _ic_bom_child;
 
         public ResourceExamineAppService(
             IRepository<ic_item, long> icitem,
-            IRepository<ic_bom, long> icbom
+            IRepository<ic_bom, long> icbom,
+            IRepository<ic_bom_child, long> icbomchild
             )
         {
             _ic_item = icitem;
             _ic_bom = icbom;
+            _ic_bom_child = icbomchild;
         }
 
         /// <summary>
@@ -37,26 +44,92 @@ namespace Business.ResourceExamineManagement
         /// <param name="input"></param>
         /// <returns></returns>
         /// <exception cref="NotImplementedException"></exception>
-        public Task<PschedDto> ReceiveResult(SeorderentryDto input)
+        public async Task<PschedDto> ReceiveResult(SeorderentryDto input)
         {
-            throw new NotImplementedException();
-
+            //throw new NotImplementedException();
+            long orderid=0;
+            long BomId=0;
+            int Quantity=0;
+            await BomPretreatmentAsync(orderid, BomId, Quantity);
         }
 
 
         /// <summary>
         /// BOM预处理
         /// </summary>
+        /// <param name="orderid">订单行id</param>
         /// <param name="BomId">Bom主键</param>
         /// <param name="Quantity">需要数量</param>
-        public async Task BomPretreatmentAsync(long? BomId, int Quantity)
+        public async Task BomPretreatmentAsync(long? orderid,long? BomId, int Quantity)
         {
+            if (orderid == null)
+            {
+                //throw new bu
+            }
             if (BomId == null)
             {
                 //throw new bu
             }
 
-            var query = (await _ic_bom.GetQueryableAsync()).WhereIf(true, a => a.bom_id == BomId).ToList();
+            var help = new SnowFlake(1, 1);
+            var id = help.NextId();
+            var level = 0;
+            var bomlist = (await _ic_bom.GetQueryableAsync()).ToList();
+            var bomchildlist = (await _ic_bom_child.GetQueryableAsync()).ToList();
+            var icitemlist = (await _ic_item.GetQueryableAsync()).ToList();
+            //GetBomListAsync();
+        }
+
+
+        public void GetBomList(List<ic_bom> bomlist, List<ic_bom_child> bomchildlist, List<ic_item> icitemlist, long bomId, List<BomChildExamineDto> returnlist, long? parent_id, int le)
+        {
+            int level = le++;//初始化定义level层级
+            var help = new SnowFlake(1, 1);
+
+            var bom = bomlist.WhereIf(true, s => s.bom_id == bomId).FirstOrDefault();
+            if (bom == null)
+            {
+
+            }
+            var dto = new BomChildExamineDto();
+            dto.level = level;
+            dto.bom_id = bomId;
+            dto.id = help.NextId();
+            dto.parent_id = parent_id;
+            dto.item_id = bom.icitem_id;
+            dto.item_name = bom.item_name;
+            dto.item_code = bom.item_number;
+            //var bdto = ObjectMapper.Map<ic_bom,BomChildExamineDto>(bom);
+            returnlist.Add(dto);
+            var childlist = bomchildlist.WhereIf(true, a => a.bom_id == bom.bom_id).ToList();
+            foreach (var c in childlist)
+            {
+                var icitem = icitemlist.WhereIf(true, a => a.icitem_id == c.icitem_id).FirstOrDefault();
+                //如果此明细查的到BOM信息,则代表此child是一个子BOM。
+                if (c.is_bom == 1)
+                {
+                    var childBom = bomlist.WhereIf(true, a => a.icitem_id == c.icitem_id).FirstOrDefault();
+                    if (childBom != null)
+                    {
+                        GetBomList(bomlist, bomchildlist, icitemlist, childBom.bom_id, returnlist, dto.id, level);
+                    }
+                }
+                else {
+                    if (icitem != null)
+                    {
+                        var childDto = new BomChildExamineDto();
+                        childDto.level = level++;
+                        childDto.bom_id = bomId;
+                        childDto.id = help.NextId();
+                        childDto.parent_id = parent_id;
+                        childDto.item_id = icitem.icitem_id;
+                        childDto.item_name = icitem.name;
+                        childDto.item_code = icitem.number;
+                        returnlist.Add(childDto);
+                    }
+                }
+            }
+            
         }
         /// <summary>
         /// 检查在制工单