Explorar o código

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

tangdi %!s(int64=2) %!d(string=hai) anos
pai
achega
fe8a4bf8d6

+ 5 - 0
MicroServices/Business/Business.Application/ReplenishmentManagement/ReplenishmentAppService.cs

@@ -2969,7 +2969,12 @@ namespace Business.Replenishment
             var quarter_srm_pr_mains = srm_pr_mains.Where(s => s.pr_psend_date >= _CalcBomViewAppService.quarter_starttime && s.pr_psend_date < _CalcBomViewAppService.quarter_endtime).ToList();
             var materialItemStock = _invMaster.Select(a => numbers.Contains(a.ItemNum) && a.Domain == input.factory_id.ToString());
             //更新未确认未合并的PR
+            //占用的PR不能扣减
             var prCanUpdateList = _mysql_srm_pr_main.GetListAsync(a => icItemList.Select(c => c.Id).ToList().Contains(a.icitem_id.GetValueOrDefault()) && a.pr_ssend_date >= DateTime.Now.Date.AddDays(1) && a.state==1).Result;
+            var  prIds = prCanUpdateList.Select(a => a.Id).ToList();
+            var prOccupy=_mysql_srm_po_occupy.GetListAsync(a => prIds.Contains(a.polist_id.GetValueOrDefault()) && a.factory_id==input.factory_id).Result;
+            var prOccupyIds = prOccupy.Select(a => a.polist_id).ToList();
+            prCanUpdateList = prCanUpdateList.Where(a => !prOccupyIds.Contains(a.Id)).ToList();
             List<srm_pr_main> prUpdateList = new List<srm_pr_main>();
             List<srm_pr_main> prDeleteList = new List<srm_pr_main>();
             ropMaterialModelList.ForEach(b =>

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

@@ -4690,7 +4690,11 @@ namespace Business.ResourceExamineManagement
             DateTime startTime = DateTime.Now;
             //尚未开始生产的工单+正在生产的工单
             var workOrds = _workOrdMaster.Select(p => p.IsActive && p.Domain == domain && ((p.OrdDate < endDate && p.OrdDate >= startTime && p.Status.ToUpper() == "P" && (string.IsNullOrEmpty(p.Typed) || (!string.IsNullOrEmpty(p.Typed) && p.Typed.ToUpper() != "PW" && p.BusinessID > 0))) || p.Status.ToUpper() == "W")).ToList();
-            string result = await _productionScheduleAppService.DoProductSchedule(startTime,workOrds, domain, 2);
+            string result = "OK";
+            if (workOrds.Any())
+            {
+                result = await _productionScheduleAppService.DoProductSchedule(startTime, workOrds, domain, 2);
+            }
             return result;
         }
 
@@ -4721,7 +4725,11 @@ namespace Business.ResourceExamineManagement
             //调用优先级计算算法
             workOrds = _replenishmentAppService.CalcPriority(workOrds.Select(p=>p.WorkOrd).ToList(), input.domain);
             //执行排产
-            string result = await _productionScheduleAppService.DoProductSchedule(startTime, workOrds, input.domain, 2);
+            string result = "OK";
+            if (workOrds.Any())
+            {
+                result = await _productionScheduleAppService.DoProductSchedule(startTime, workOrds, input.domain, 2);
+            }
             return result;
         }