Преглед изворни кода

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

tangdi пре 2 година
родитељ
комит
a03ecaee0e

+ 12 - 5
MicroServices/Business/Business.Application/Quartz/ProductionScheduleAppService.cs

@@ -169,10 +169,11 @@ namespace Business.Quartz
             List<WorkOrdRouting> workOrdRoutings = _workOrdRouting.Select(p => workOrds.Select(m => m.WorkOrd).Contains(p.WorkOrd) && p.Domain == "1001" && p.Status != "C" && p.IsActive);
             //获取物料对应的生产线信息:物料、工序对应的生产线
             List<ProdLineDetail> prodLines = _prodLineDetail.Select(p => workOrds.Select(m => m.ItemNum).Contains(p.Part) && p.Domain == "1001" && p.IsActive);
+            List<string> lines = prodLines.Select(p => p.Line).ToList();
             //获取生产周期数据
-            List<PeriodSequenceDet> dbPeriodSequences = _periodSequenceDet.Select(p=> workOrds.Select(m => m.ItemNum).Contains(p.ItemNum) && p.PlanDate >= earlist && p.Domain == "1001" && p.IsActive);
+            List<PeriodSequenceDet> dbPeriodSequences = _periodSequenceDet.Select(p=> lines.Contains(p.Line) && p.PlanDate >= earlist && p.Domain == "1001" && p.IsActive);
             //获取当前日期往后的排产记录数据
-            List<ScheduleResultOpMaster> dbSchedules = _scheduleResultOpMaster.Select(p => workOrds.Select(m => m.ItemNum).Contains(p.ItemNum) && p.WorkDate >= earlist && p.Domain == "1001");
+            List<ScheduleResultOpMaster> dbSchedules = _scheduleResultOpMaster.Select(p => lines.Contains(p.Line) && p.WorkDate >= earlist && p.Domain == "1001");
             //获取工作日历数据
             calendars = _shopCalendarWorkCtr.Select(p=>p.Domain == "1001" && p.IsActive);
             //获取产线休息记录数据
@@ -185,15 +186,21 @@ namespace Business.Quartz
             List<PeriodSequenceDet> periodSequenceDtls = new List<PeriodSequenceDet>();
             //排产记录表
             List<ScheduleResultOpMaster> scheduleMasters = new List<ScheduleResultOpMaster>();
+            //排产结果
+            List<ScheduleResultOpMaster> allResults = new List<ScheduleResultOpMaster>();
+            allResults.AddRange(dbSchedules);
             foreach (var item in workOrds)
             {
                 //当前工单的排产计划开始时间:年-月-日
                 DateTime planStart = item.OrdDate.GetValueOrDefault().Date;
-                //当前工单的对应的产线排产记录
-                var curSchedules = dbSchedules.Where(p => p.ItemNum == item.ItemNum).ToList();
+                ////当前工单对应的产线数据
+                //var curLines = prodLines.Where(p => p.Part == item.ItemNum).Select(m=>m.Line).Distinct().ToList();
+                ////当前工单的对应的产线排产记录
+                //var curSchedules = dbSchedules.Where(p => curLines.Contains(p.Line)).ToList();
+                allResults.AddRange(scheduleMasters);
 
                 //工序预处理:确定每层级工序对应的产线
-                List<WorkOrdRoutingDto> routingDtos = ProcPretreatment(item, workOrdRoutings.Where(p => p.WorkOrd == item.WorkOrd).ToList(), prodLines, curSchedules);
+                List<WorkOrdRoutingDto> routingDtos = ProcPretreatment(item, workOrdRoutings.Where(p => p.WorkOrd == item.WorkOrd).ToList(), prodLines, allResults);
                 
                 //排产前的数据校验
                 if (routingDtos.Count() == 0)//没有维护主工序

+ 2 - 0
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -2939,6 +2939,7 @@ namespace Business.ResourceExamineManagement
                     woRouting.OverlapUnits = dtl.OverlapUnits;
                     woRouting.Status = "";
                     woRouting.IsActive = true;
+                    woRouting.CommentIndex = dtl.CommentIndex;
                     workOrdRoutings.Add(woRouting);
                 }
 
@@ -2954,6 +2955,7 @@ namespace Business.ResourceExamineManagement
                     woDetail.QtyRequired = item.need_number.GetValueOrDefault() * structure.Qty;
                     woDetail.QtyPosted = 0m;
                     woDetail.QtyReturned = 0m;
+                    woDetail.FrozenBOMQty = structure.Qty;
                     woDetail.Status = "";
                     woDetail.IsActive = true;
                     workOrdDetails.Add(woDetail);

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

@@ -68,6 +68,12 @@ namespace Business.Model.Production
         [Comment("平行加工件数")]
         public int? OverlapUnits { get; set; }
 
+        /// <summary>
+        /// 备注索引
+        /// </summary>
+        [Comment("备注索引")]
+        public int CommentIndex { get; set; }
+
         /// <summary>
         /// 是否有效:1-有效;0-无效
         /// </summary>

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

@@ -64,6 +64,12 @@ namespace Business.Model.Production
         [Comment("退回数量")]
         public decimal QtyReturned { get; set; }
 
+        /// <summary>
+        /// 冻结BOM数量
+        /// </summary>
+        [Comment("冻结BOM数量")]
+        public decimal FrozenBOMQty { get; set; }
+
         /// <summary>
         /// 状态:C为不可用状态
         /// </summary>

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

@@ -94,6 +94,12 @@ namespace Business.Model.Production
         [Comment("状态")]
         public string? Status { get; set; }
 
+        /// <summary>
+        /// 是否换包
+        /// </summary>
+        [Comment("是否换包")]
+        public int CommentIndex { get; set; }
+
         /// <summary>
         /// 是否有效:1-有效;0-无效
         /// </summary>