Эх сурвалжийг харах

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

zhengly 2 жил өмнө
parent
commit
fb929df554

+ 22 - 14
MicroServices/Business/Business.Application/ResourceExamineManagement/ProductionScheduleAppService.cs

@@ -3,6 +3,7 @@ using Business.Core.Utilities;
 using Business.Domain;
 using Business.Dto;
 using Business.EntityFrameworkCore.SqlRepositories;
+using Business.ResourceExamineManagement.Dto;
 using System;
 using System.Collections.Generic;
 using System.Collections.Immutable;
@@ -97,6 +98,10 @@ namespace Business.ResourceExamineManagement
         /// </summary>
         private List<HolidayMaster> holidays;
 
+        /// <summary>
+        /// 工厂id
+        /// </summary>
+        private string domain = "";
         #endregion
 
         #region 构造函数
@@ -139,20 +144,23 @@ namespace Business.ResourceExamineManagement
         public async void DoExt()
         {
             List<WorkOrdMaster> workOrds = new List<WorkOrdMaster>();
-            await DoProductShcedule(workOrds);
+            domain = "1001";//定时任务跑资源检查,需要定义工厂id
+            await DoProductShcedule(workOrds, domain);
         }
 
         /// <summary>
         /// 生产排产
         /// </summary>
         /// <param name="workOrds">工单:定时任务执行时count=0;资源检查调用count>0</param>
+        /// <param name="factoryid">工单的工厂id</param>
         /// <returns></returns>
-        public async Task DoProductShcedule(List<WorkOrdMaster> workOrds)
+        public async Task DoProductShcedule(List<WorkOrdMaster> workOrds,string factoryid)
         {
+            domain = factoryid;
             if (workOrds.Count == 0)//定时任务调用时,需要获取工单数据
             {
                 //1、获取需要排产的工单:Status为空且IsActive==1
-                workOrds = _workOrdMaster.Select(p => string.IsNullOrEmpty(p.Status) && p.IsActive);
+                workOrds = _workOrdMaster.Select(p => string.IsNullOrEmpty(p.Status) && p.IsActive && p.Domain == domain);
             }
             if (workOrds.Count == 0)//没有工单需要排产
             {
@@ -170,20 +178,20 @@ namespace Business.ResourceExamineManagement
 
             //2、获取数据
             //获取工单工艺路径数据
-            List<WorkOrdRouting> workOrdRoutings = _workOrdRouting.Select(p => workOrds.Select(m => m.WorkOrd).Contains(p.WorkOrd) && p.Domain == "1001" && p.Status != "C" && p.IsActive);
+            List<WorkOrdRouting> workOrdRoutings = _workOrdRouting.Select(p => workOrds.Select(m => m.WorkOrd).Contains(p.WorkOrd) && p.Domain == domain && 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<ProdLineDetail> prodLines = _prodLineDetail.Select(p => workOrds.Select(m => m.ItemNum).Contains(p.Part) && p.Domain == domain && p.IsActive);
             List<string> lines = prodLines.Select(p => p.Line).ToList();
             //获取生产周期数据
-            List<PeriodSequenceDet> dbPeriodSequences = _periodSequenceDet.Select(p => lines.Contains(p.Line) && p.PlanDate >= earlist && p.Domain == "1001" && p.IsActive);
+            List<PeriodSequenceDet> dbPeriodSequences = _periodSequenceDet.Select(p => lines.Contains(p.Line) && p.PlanDate >= earlist && p.Domain == domain && p.IsActive);
             //获取当前日期往后的排产记录数据
-            List<ScheduleResultOpMaster> dbSchedules = _scheduleResultOpMaster.Select(p => lines.Contains(p.Line) && p.WorkDate >= earlist && p.Domain == "1001");
+            List<ScheduleResultOpMaster> dbSchedules = _scheduleResultOpMaster.Select(p => lines.Contains(p.Line) && p.WorkDate >= earlist && p.Domain == domain);
             //获取工作日历数据
-            calendars = _shopCalendarWorkCtr.Select(p => p.Domain == "1001" && p.IsActive);
+            calendars = _shopCalendarWorkCtr.Select(p => p.Domain == domain && p.IsActive);
             //获取产线休息记录数据
-            qualityLines = _qualityLineWorkDetail.Select(p => p.Domain == "1001" && p.IsActive);
+            qualityLines = _qualityLineWorkDetail.Select(p => p.Domain == domain && p.IsActive);
             //获取节假日记录数据
-            holidays = _holidayMaster.Select(p => p.Domain == "1001" && p.IsActive && p.Dated >= earlist);
+            holidays = _holidayMaster.Select(p => p.Domain == domain && p.IsActive && p.Dated >= earlist);
 
             //3、排产
             //生产周期
@@ -329,7 +337,7 @@ namespace Business.ResourceExamineManagement
                         //记录生产周期
                         curSequences.Add(new PeriodSequenceDet
                         {
-                            Domain = "1001",
+                            Domain = domain,
                             Line = item.Line,
                             ItemNum = workOrd.ItemNum,
                             PlanDate = workStartTime.Date,
@@ -344,7 +352,7 @@ namespace Business.ResourceExamineManagement
                         //记录排产记录
                         curScheduleRsts.Add(new ScheduleResultOpMaster
                         {
-                            Domain = "1001",
+                            Domain = domain,
                             WorkOrd = workOrd.WorkOrd,
                             Line = item.Line,
                             ItemNum = workOrd.ItemNum,
@@ -401,7 +409,7 @@ namespace Business.ResourceExamineManagement
                         //记录生产周期
                         curSequences.Add(new PeriodSequenceDet
                         {
-                            Domain = "1001",
+                            Domain = domain,
                             Line = item.Line,
                             ItemNum = workOrd.ItemNum,
                             PlanDate = workStartTime.Date,
@@ -416,7 +424,7 @@ namespace Business.ResourceExamineManagement
                         //记录排产记录
                         curScheduleRsts.Add(new ScheduleResultOpMaster
                         {
-                            Domain = "1001",
+                            Domain = domain,
                             WorkOrd = workOrd.WorkOrd,
                             Line = item.Line,
                             ItemNum = workOrd.ItemNum,

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

@@ -2555,7 +2555,7 @@ namespace Business.ResourceExamineManagement
                 //优先级排序
                 workOrdMasters = workOrdMasters.OrderBy(s => s.OrdDate).ToList();
                 //排产
-                await _productionScheduleAppService.DoProductShcedule(workOrdMasters);
+                await _productionScheduleAppService.DoProductShcedule(workOrdMasters, param.factoryId.ToString());
                 
                 foreach (var wod in workOrdMasters)
                 {
@@ -3209,7 +3209,7 @@ namespace Business.ResourceExamineManagement
                 return JsonConvert.SerializeObject("ok");
             }
             //排产
-            await _productionScheduleAppService.DoProductShcedule(workOrdMasters);
+            await _productionScheduleAppService.DoProductShcedule(workOrdMasters, workOrdMasters[0].Domain);
             //AutoCreatePickBill(workOrdMasters.Select(p => p.WorkOrd).ToList());
             return JsonConvert.SerializeObject("ok");
         }