Sfoglia il codice sorgente

工单状态调整。

tangdi 2 anni fa
parent
commit
be7d119db5

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

@@ -1880,7 +1880,7 @@ namespace Business.Replenishment
                     if (b.ItemNum == weekPlan[i].ItemNumber && b.WorkOrd == weekPlan[i].ProductionOrder)
                     {
                         b.Priority = priority;
-                        b.Status = "P";
+                        b.Status = "p";
                     }
                 });
                 mes_Morders.ForEach(c =>
@@ -2459,7 +2459,7 @@ namespace Business.Replenishment
                 workOrd.RoutingCode = item.product_code;
                 workOrd.Period = 1;
                 workOrd.Priority = item.urgent;
-                workOrd.Status = "";
+                workOrd.Status = "p";
                 workOrd.IsActive = true;
                 workOrd.IsConfirm = true;
                 workOrd.CreateTime = DateTime.Now;
@@ -3396,7 +3396,7 @@ namespace Business.Replenishment
                 await _ic_item_stock.InsertManyAsync(moIcitemStokc);
             }
 
-            var workordmsters = _workOrdMaster.Select(s => s.Domain == factoryId.ToString() && s.Status.ToLower() != "c");
+            var workordmsters = _workOrdMaster.Select(s => s.Domain == factoryId.ToString() && string.IsNullOrEmpty(s.Status) != true && s.Status.ToLower() != "c");
             if (workordmsters.Any())
             {
                 //根据工单表找到工单明细,然后根据DOP工单占用记录,对比工单明细发货数量,来做冲销。
@@ -3570,8 +3570,8 @@ namespace Business.Replenishment
             holidays = _holidayMaster.Select(p => p.Dated >= DateTime.Now.Date);
 
             //主工单
-            List<mo_mes_morder> mo_Mes_Morders = _mes_morder.GetListAsync(x => boms.Select(p => p.bom_number).Contains(x.bom_number) && (x.morder_state != MorderEnum.Accomplish_state || x.morder_state != MorderEnum.Close_state
-          && x.morder_icitem_type != MorderEnum.XgwyMorder) && x.company_id == param.company_id && x.bang_id == bangid).Result;
+            var ordlist = _workOrdMaster.Select(x => x.Domain == param.factoryId.ToString() && string.IsNullOrEmpty(x.Typed) == true && (x.Status.ToLower() == "p" || x.Status.ToLower() == "r")).ToList();
+            List<mo_mes_morder> mo_Mes_Morders = _mes_morder.GetListAsync(x => boms.Select(p => p.item_number).Contains(x.product_code) && ordlist.Select(c => c.WorkOrd).Contains(x.morder_no) && x.company_id == param.company_id && x.factory_id == param.factoryId && x.bang_id == bangid).Result;
             List<long> moids = mo_Mes_Morders.Select(p => p.mysql_id).ToList();
             List<mo_mes_moentry> mo_Mes_Moentry = _mes_moentry.GetListAsync(x => moids.Contains(x.moentry_moid)).Result;
             //工单占用表

+ 1 - 1
MicroServices/Business/Business.Application/ResourceExamineManagement/ProductionScheduleAppService.cs

@@ -236,7 +236,7 @@ namespace Business.ResourceExamineManagement
             DateTime startTime = DateTime.Now;
             scheTime = startTime;
             //尚未开始生产的工单+正在生产的工单
-            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();
+            var workOrds = _workOrdMaster.Select(p => p.IsActive && p.Domain == domain && ((p.OrdDate < endDate && p.OrdDate >= startTime && p.Status.ToLower() =="p" && (string.IsNullOrEmpty(p.Typed) || (!string.IsNullOrEmpty(p.Typed) && p.Typed.ToUpper() != "PW" && p.BusinessID >0 ))) || p.Status.ToLower() == "w")).ToList();
             if (workOrds.Any())
             {
                 await DoProductSchedule(startTime, workOrds, domain, 1);

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

@@ -2406,8 +2406,8 @@ namespace Business.ResourceExamineManagement
             {
                 return "当前任务工厂编号为空,请检查。";
             }
-
-            List<mes_morder> Mes_Morders = _mysql_mes_morder.GetListAsync(x => x.morder_state == "初始" && x.factory_id.ToString() == domain).Result;
+            var ordlist = _workOrdMaster.Select(x => x.Domain == domain && string.IsNullOrEmpty(x.Typed) == true && x.Status.ToLower() == "p").ToList();
+            List<mes_morder> Mes_Morders = _mysql_mes_morder.GetListAsync(x => ordlist.Select(c=>c.WorkOrd).Contains(x.morder_no) && x.factory_id.ToString() == domain).Result;
 
             /*//先排除锁定期内的工单 //优先级排序
             var sysSet = _generalizedCodeMaster.Select(s => s.FldName == "SystemConfig" && s.Val == "WorkOrderLockPeriod" && s.Domain == domain).ToList();
@@ -2544,7 +2544,7 @@ namespace Business.ResourceExamineManagement
         /// <returns></returns>
         public async Task<string> OrderCompleteInspection(string domain, string userAccount)
         {
-            var workords = _workOrdMaster.Select(s => s.Domain == domain && (s.Status == "r" || string.IsNullOrEmpty(s.Status) == true)).ToList();
+            var workords = _workOrdMaster.Select(s => s.Domain == domain && (s.Status.ToLower() == "r" || string.IsNullOrEmpty(s.Status) == true)).ToList();
             List<mes_morder> morders = _mysql_mes_morder.GetListAsync(x => x.factory_id.ToString() == domain && workords.Select(s => s.WorkOrd).Contains(x.morder_no) && (x.morder_state == MorderEnum.Initial_state || x.morder_state == MorderEnum.Xd_state) && !x.IsDeleted).Result;
             if (morders.Any())
             {
@@ -3368,8 +3368,8 @@ namespace Business.ResourceExamineManagement
             holidays = _holidayMaster.Select(p => p.Dated >= DateTime.Now.Date);
 
             //主工单
-            List<mo_mes_morder> mo_Mes_Morders = _mes_morder.GetListAsync(x => boms.Select(p => p.item_number).Contains(x.product_code) && (x.morder_state != MorderEnum.Accomplish_state || x.morder_state != MorderEnum.Close_state
-          && x.morder_icitem_type != MorderEnum.XgwyMorder) && x.company_id == param.company_id && x.factory_id == param.factoryId && x.bang_id == bangid).Result;
+            var ordlist = _workOrdMaster.Select(x => x.Domain == param.factoryId.ToString() && string.IsNullOrEmpty(x.Typed) == true && (x.Status.ToLower() == "p" || x.Status == "r")).ToList();
+            List<mo_mes_morder> mo_Mes_Morders = _mes_morder.GetListAsync(x => boms.Select(p => p.item_number).Contains(x.product_code) && ordlist.Select(c => c.WorkOrd).Contains(x.morder_no) && x.company_id == param.company_id && x.factory_id == param.factoryId && x.bang_id == bangid).Result;
             List<long> moids = mo_Mes_Morders.Select(p => p.mysql_id).ToList();
             List<mo_mes_moentry> mo_Mes_Moentry = _mes_moentry.GetListAsync(x => moids.Contains(x.moentry_moid)).Result;
             //工单占用表
@@ -3841,7 +3841,7 @@ namespace Business.ResourceExamineManagement
             if (string.IsNullOrEmpty(workOrd))
             {
                 //获取工单数据
-                workOrdMasters = _workOrdMaster.Select(p => p.Domain == domain && p.OrdDate >= DateTime.Now.Date.AddDays(1) && p.OrdDate < DateTime.Now.Date.AddDays(4) && p.Status != "r" && p.Status != "c");
+                workOrdMasters = _workOrdMaster.Select(p => p.Domain == domain && p.OrdDate >= DateTime.Now.Date.AddDays(1) && p.OrdDate < DateTime.Now.Date.AddDays(4) && p.Status.ToLower() == "p");
             }
             else {
                 workOrds = workOrd.Split(",").ToList();
@@ -3849,7 +3849,7 @@ namespace Business.ResourceExamineManagement
                 {
                     return "没有需要下达的工单。";
                 }
-                workOrdMasters = _workOrdMaster.Select(p => p.Domain == domain && workOrds.Contains(p.WorkOrd) && p.Status != "r" && p.Status != "c");
+                workOrdMasters = _workOrdMaster.Select(p => p.Domain == domain && workOrds.Contains(p.WorkOrd) && p.Status.ToLower() == "p");
             }
             if (workOrdMasters.Count == 0)
             {
@@ -4043,7 +4043,7 @@ namespace Business.ResourceExamineManagement
                 workOrd.RoutingCode = item.product_code;
                 workOrd.Period = 1;
                 workOrd.Priority = item.urgent;
-                workOrd.Status = "";
+                workOrd.Status = "p";
                 workOrd.IsActive = true;
                 workOrd.IsConfirm = true;
                 workOrd.CreateTime = DateTime.Now;
@@ -4550,7 +4550,7 @@ 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.ToLower() == "w")).ToList();
+            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);
             return result;
         }