Explorar el Código

Merge branch 'dev' of http://123.60.180.165:4647/ZZYDOP/DOPCore into dev

tangdi hace 2 años
padre
commit
75094b6e8d

+ 53 - 12
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -266,6 +266,9 @@ namespace Business.ResourceExamineManagement
         /// 生产线维护表
         /// </summary>
         private ISqlRepository<LineMaster> _lineMaster;
+        private ISqlRepository<ItemMaster> _itemMaster;
+        private ISqlRepository<NbrMaster> _nbrMaster;
+        private ISqlRepository<NbrDetail> _nbrDetail;
         private readonly ProductionScheduleAppService _productionScheduleAppService;
         #endregion
 
@@ -333,6 +336,7 @@ namespace Business.ResourceExamineManagement
             ISqlRepository<TagMaster> tagMasterRepository,
             ISqlRepository<PeriodSequenceDet> periodSequenceDet,
             ISqlRepository<LineMaster> lineMaster,
+            ISqlRepository<ItemMaster> itemMaster,
             PretreatmentAppService pretreatmentAppService,
             CalcBomViewAppService calcbomviewAppService,
             PurchaseOrderAppService purchaseOrderAppService,
@@ -345,7 +349,9 @@ namespace Business.ResourceExamineManagement
             ISqlRepository<ProductStructureMaster> productStructureMaster,
             ISqlRepository<WorkOrdRouting> workOrdRouting,
             ISqlRepository<WorkOrdMaster> workOrdMaster,
-            ISqlRepository<WorkOrdDetail> workOrdDetail
+            ISqlRepository<WorkOrdDetail> workOrdDetail,
+            ISqlRepository<NbrMaster> nbrMaster,
+            ISqlRepository<NbrDetail> nbrDetail
             )
         {
             _mes_technique = mes_technique;
@@ -401,7 +407,6 @@ namespace Business.ResourceExamineManagement
             _mysql_srm_supplier = mysql_srm_supplier;
             _tagMasterRepository = tagMasterRepository;
             _periodSequenceDet = periodSequenceDet;
-            _lineMaster = lineMaster;
             _pretreatmentAppService = pretreatmentAppService;
             _CalcBomViewAppService = calcbomviewAppService;
             _purchaseOrderAppService = purchaseOrderAppService;
@@ -415,6 +420,10 @@ namespace Business.ResourceExamineManagement
             _workOrdRouting = workOrdRouting;
             _workOrdMaster=workOrdMaster;
             _workOrdDetail=workOrdDetail;
+            _lineMaster = lineMaster;
+            _itemMaster = itemMaster;
+            _nbrMaster = nbrMaster;
+            _nbrDetail = nbrDetail;
     }
         #endregion
 
@@ -2441,31 +2450,63 @@ namespace Business.ResourceExamineManagement
 
         public void AutoCreatePickBill(List<string> workOrds)
         {
+            workOrds.Add("Test0000001");
             //获取生产周期数据
             List<PeriodSequenceDet> dbPeriodSequences = _periodSequenceDet.Select(p => workOrds.Contains(p.WorkOrds) && p.Domain == "1001" && p.IsActive);
             List<LineMaster> lineMasters = new List<LineMaster>();
-            List<string> lines = new List<string>();//产线列表,用于获取领料单对应产线线边仓
-            List<NbrDetail> nNbrDetail = new List<NbrDetail>();//需要生成领料单列表
+            List<string> lines = new List<string>();//产线列表,
+            List<NbrMaster> nbrMasterList = new List<NbrMaster>();//需要生成领料单列表
+            List<NbrDetail> nbrDetailList = new List<NbrDetail>();//需要生成领料单列表
             if (dbPeriodSequences.Any())
             {
                 lines = dbPeriodSequences.Select(a => a.Line).Distinct().ToList();
                 lineMasters = _lineMaster.Select(p => lines.Contains(p.Line) && p.Domain == "1001" && p.IsActive);
+                List<ProductStructureMaster>  itemList=GetProductStructure(dbPeriodSequences.Select(a=>a.ItemNum).Distinct().ToList());
+                var childrenList= itemList.Select(a=>a.ComponentItem).Distinct().ToList();
+                List<ItemMaster> itemLocList = _itemMaster.Select(p => childrenList.Contains(p.ItemNum) && p.Domain == "1001" && p.IsActive).Distinct().ToList();
+                int i = 100;
                 foreach (var item in dbPeriodSequences)
                 {
-                    nNbrDetail.Add(new NbrDetail
+                    var Nbr = "YHF" + DateTime.Now.ToString("yyyyMMdd")+ i.ToString();
+                    nbrMasterList.Add(new NbrMaster
                     {
-
                         Domain = "1001",
                         Type = "SM",
-                        Nbr = "",
-                        ItemNum = "",
-                        QtyFrom = 0,
-                        QtyTo = 0,
-                        WorkOrd = item.WorkOrds,
-                        QtyOrd = 0,
+                        Nbr = Nbr,
+                        Remark="",
+                        Date=item.PlanDate,
+                        Status="",
+                        WorkOrd="",
+                        QtyOrd=item.OrdQty.HasValue? item.OrdQty.Value:0,
                         IsActive = true
                     });
+                    i++;
+                    itemList.Where(a => a.ParentItem == item.ItemNum).ToList()?.ForEach(a =>
+                    {
+                        string LocationTo = "";
+                        if (itemLocList.Where(c => c.ItemNum == a.ComponentItem).ToList().Any())
+                        {
+                            LocationTo = itemLocList?.Where(c => c.ItemNum == a.ComponentItem).First().Location;
+                        }
+                        nbrDetailList.Add(new NbrDetail
+                        {
+                            Domain = "1001",
+                            Type = "SM",
+                            Nbr = Nbr,
+                            //TODO:Line产线字段是否需要
+                            ItemNum =a.ComponentItem,
+                            QtyFrom = 0,
+                            QtyTo = 0,
+                            LocationFrom="",
+                            LocationTo= LocationTo,
+                            WorkOrd = item.WorkOrds,
+                            QtyOrd = item.OrdQty*a.Qty,
+                            IsActive = true
+                        });
+                    });
                 }
+                _nbrMaster.Insert(nbrMasterList);
+                _nbrDetail.Insert(nbrDetailList);
             }
         }
     }

+ 3 - 1
MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/DOP/BusinessDbContext.cs

@@ -141,7 +141,9 @@ namespace Business.EntityFrameworkCore
         /// ±ê×¼BOM±í
         /// </summary>
         public DbSet<ProductStructureMaster> ProductStructureMaster { get; set; }
-        
+
+        public DbSet<LineMaster> LineMaster { get; set; }
+
 
         #endregion
 

+ 6 - 0
MicroServices/Business/Bussiness.Model/MES/IC/ItemMaster.cs

@@ -52,6 +52,12 @@ namespace Business.Model.MES.IC
         [Comment("状态")]
         public string? Status { get; set; }
 
+        /// <summary>
+        /// 状态:C为不可用状态
+        /// </summary>
+        [Comment("状态")]
+        public string? Location { get; set; }
+
         /// <summary>
         /// 是否有效:1-有效;0-无效
         /// </summary>

+ 11 - 0
MicroServices/Business/Bussiness.Model/MES/IC/NbrDetail.cs

@@ -64,6 +64,17 @@ namespace Business.Model.MES.IC
         [Comment("工单")]
         public string? WorkOrd { get; set; }
 
+        /// <summary>
+        /// 原始库位
+        /// </summary>
+        [Comment("原始库位")]
+        public string? LocationFrom { get; set; }
+        /// <summary>
+        /// 目标库位
+        /// </summary>
+        [Comment("目标库位")]
+        public string? LocationTo { get; set; }
+
         /// <summary>
         /// 订单数量
         /// </summary>