heteng 2 роки тому
батько
коміт
9f38b1ff98

+ 21 - 14
MicroServices/Business/Business.Application/Quartz/ProductionScheduleAppService.cs

@@ -1,4 +1,5 @@
-using Bussiness.Model.MES.IC;
+using Business.Business.Dto;
+using Bussiness.Model.MES.IC;
 using Bussiness.Model.Production;
 using Bussiness.Model.SRM;
 using System;
@@ -8,6 +9,7 @@ using System.Text;
 using System.Threading.Tasks;
 using Volo.Abp.Application.Services;
 using Volo.Abp.Domain.Repositories;
+using Volo.Abp.Validation.Localization;
 
 namespace Business.Quartz
 {
@@ -93,26 +95,31 @@ namespace Business.Quartz
         /// </summary>
         public async Task DoProductShcedule()
         {
-            //1、获取工单:Status !='C'且 IsActive == 1
-            List<WorkOrdMaster> workOrds = _workOrdMaster.GetListAsync(p=> p.Domain == "1001" && p.Status !="C" && p.IsActive == 1).Result;
-            //1.1 过滤已排产的工单
-
+            //1、获取需要排产的工单:Status为空且IsActive==1
+            List<WorkOrdMaster> workOrds = _workOrdMaster.GetListAsync(p => string.IsNullOrEmpty(p.Status) && p.IsActive ==1).Result;
             if (workOrds.Count == 0)
             {
                 return;
             }
-            //1.2、工单按照优先级排序:Priority从小到大排序
-            workOrds = workOrds.OrderBy(p => p.Priority).ToList();
-            //2、获取工单工艺路径数据
+            //2、获取数据
+            //获取工单工艺路径数据
             List<WorkOrdRouting> workOrdRoutings = _workOrdRouting.GetListAsync(p => workOrds.Select(m=>m.WorkOrd).Contains(p.WorkOrd) && p.Domain == "1001" && p.Status != "C" && p.IsActive == 1).Result;
-            //3、获取物料对应的生产线信息
+            //获取物料对应的生产线信息:物料、工序对应的生产线
             List<ProdLineDetail> prodLineDetails = _prodLineDetail.GetListAsync(p => workOrds.Select(m => m.ItemNum).Contains(p.Part) && p.Domain == "1001" && p.Status != "C" && p.IsActive == 1).Result;
-            //4、获取工单物料明细
-            List<WorkOrdDetail> workOrdDetails = _workOrdDetail.GetListAsync(p => workOrds.Select(m=>m.WorkOrd).Contains(p.WorkOrd) && p.Domain == "1001" && p.Status != "C" && p.IsActive == 1).Result;
-            //5、获取物料的库存数据
-            List<InvMaster> invMasters = _invMaster.GetListAsync(p => workOrds.Select(m => m.ItemNum).Contains(p.ItemNum) && p.Domain == "1001" && p.IsActive == 1).Result;
-            //6、判断当前工单物料是否齐套
+            //获取当前日期往后的排产记录数据
+            List<ScheduleResultOpMaster> schedules = _scheduleResultOpMaster.GetListAsync(p=>workOrds.Select(m=>m.ItemNum).Contains(p.ItemNum) && p.Domain == "1001").Result;
+
+            //3、排产
+            //排产结果(记录所有工序的排产情况)
+            List<ScheduleResultOpMaster> scheduleResults = new List<ScheduleResultOpMaster>();
+            //生产周期(记录最后一个工序的排产情况)
+            List<PeriodSequenceDet> periodsDet = new List<PeriodSequenceDet>();
+            foreach (var item in workOrds)
+            {
+
+            }
         
         }
+
     }
 }

+ 1 - 1
MicroServices/Business/Bussiness.Model/Production/ScheduleResultOpMaster.cs

@@ -11,7 +11,7 @@ namespace Bussiness.Model.Production
     /// <summary>
     /// 工单排产记录表
     /// </summary>
-    [Comment("生产周期表")]
+    [Comment("工单排产记录表")]
     public class ScheduleResultOpMaster : BaseEntity
     {
         /// <summary>

+ 9 - 3
MicroServices/Business/Bussiness.Model/Production/WorkOrdMaster.cs

@@ -27,10 +27,16 @@ namespace Bussiness.Model.Production
         public string? Domain { get; set; }
 
         /// <summary>
-        /// 到期日期
+        /// 计划开始日期
         /// </summary>
-        [Comment("到期日期")]
-        public DateTime? DueDate { get; set; }
+        [Comment("计划开始日期")]
+        public DateTime? OrdDate { get; set; }
+
+        /// <summary>
+        /// 下达日期
+        /// </summary>
+        [Comment("下达日期")]
+        public DateTime? ReleaseDate { get; set; }
 
         /// <summary>
         /// 工单

+ 7 - 1
MicroServices/Business/Bussiness.Model/Production/WorkOrdRouting.cs

@@ -39,7 +39,7 @@ namespace Bussiness.Model.Production
         public DateTime? DueDate { get; set; }
 
         /// <summary>
-        /// 关键工序
+        /// 关键工序(需要报工的工序)
         /// </summary>
         [Comment("关键工序")]
         public int? MilestoneOp { get; set; }
@@ -56,6 +56,12 @@ namespace Bussiness.Model.Production
         [Comment("工序")]
         public int? OP { get; set; }
 
+        /// <summary>
+        /// 父级工序
+        /// </summary>
+        [Comment("父级工序")]
+        public int? ParentOp { get; set; }
+
         /// <summary>
         /// 物料编号
         /// </summary>