Przeglądaj źródła

工单下达功能开发。

tangdi 2 lat temu
rodzic
commit
ca32ab6a55

+ 7 - 0
MicroServices/Business/Business.Application.Contracts/ResourceExamineManagement/IResourceExamineAppService.cs

@@ -19,6 +19,13 @@ namespace Business.ResourceExamineManagement
         /// <returns></returns>
         Task<string> ProductionSchedule(string workOrds);
 
+        /// <summary>
+        /// Ï´ïÁìÁÏ
+        /// </summary>
+        /// <param name="workOrds"></param>
+        /// <returns></returns>
+        string CreatePickBill(string workOrds);
+
         /// <summary>
         /// ×ÊÔ´¼ì²é
         /// </summary>

+ 3 - 3
MicroServices/Business/Business.Application/Quartz/ProductionScheduleAppService.cs

@@ -230,14 +230,14 @@ namespace Business.Quartz
                 //产线排产
                 LineSchedule(item, routingDtos.OrderBy(p => p.level).ToList(), periodSequenceDtls, scheduleMasters);
 
-                //更新工单表
-                item.Status = "r";
+                /*//更新工单表
+                item.Status = "r";*/
             }
             using (TransactionScope scope = new TransactionScope())
             {
                 try {
                     //记录排产数据
-                    _workOrdMaster.Update(workOrds);
+                    /*_workOrdMaster.Update(workOrds);*/
                     _periodSequenceDet.Insert(periodSequenceDtls);
                     _scheduleResultOpMaster.Insert(scheduleMasters);
                     scope.Complete();

+ 46 - 1
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -2814,10 +2814,55 @@ namespace Business.ResourceExamineManagement
             }
             //排产
             await _productionScheduleAppService.DoProductShcedule(workOrdMasters);
-            AutoCreatePickBill(workOrdMasters.Select(p => p.WorkOrd).ToList());
+            //AutoCreatePickBill(workOrdMasters.Select(p => p.WorkOrd).ToList());
             return JsonConvert.SerializeObject("ok");
         }
 
+        /// <summary>
+        /// 生成领料单
+        /// </summary>
+        /// <param name="workOrd"></param>
+        public string CreatePickBill(string workOrd)
+        {
+            List<string> workOrds = new List<string>();
+            List<WorkOrdMaster> workOrdMasters = new List<WorkOrdMaster>();
+            if (string.IsNullOrEmpty(workOrd))
+            {
+                //获取工单数据
+                workOrdMasters = _workOrdMaster.Select(p => p.OrdDate >= DateTime.Now.Date.AddDays(1) && p.OrdDate < DateTime.Now.Date.AddDays(4) && p.Status != "r" && p.Status != "c");
+            }
+            else {
+                workOrds = workOrd.Split(",").ToList();
+                if (workOrds.Count() == 0)
+                {
+                    return "没有需要下达的工单。";
+                }
+                workOrdMasters = _workOrdMaster.Select(p => workOrds.Contains(p.WorkOrd) && p.Status != "r" && p.Status != "c");
+            }
+            if (workOrdMasters.Count() == 0)
+            {
+                return "没有需要下达的工单。";
+            }
+            //获取已排产的工单
+            List<string> dbWorkOrds = _periodSequenceDet.Select(p => workOrds.Contains(p.WorkOrds)).Select(p => p.WorkOrds).Distinct().ToList();
+            //查出已排产的工单
+            workOrdMasters = workOrdMasters.Where(p => dbWorkOrds.Contains(p.WorkOrd)).ToList();
+            //查出已产生领料单、过滤掉,取出未领料的工单
+            var nbrList = _nbrMaster.Select(a => a.Domain == "1001" && a.Type == "SM" && dbWorkOrds.Contains(a.WorkOrd));
+            var noNbrlist = nbrList.Select(p => p.WorkOrd).ToList();
+            workOrdMasters = workOrdMasters.Where(p => !noNbrlist.Contains(p.WorkOrd)).ToList();
+            if (workOrdMasters.Count() == 0)
+            {
+                return "当前选择的工单已领料或未排产。";
+            }
+            AutoCreatePickBill(workOrdMasters.Select(p => p.WorkOrd).ToList());
+            workOrdMasters.ForEach(p => { p.Status = "r"; });
+            _workOrdMaster.Update(workOrdMasters);
+            return "";
+        }
+
+
+
         /// <summary>
         /// 同步工单等相关数据
         /// </summary>

+ 12 - 0
MicroServices/Business/Business.HttpApi/Controllers/ResourceExamineController.cs

@@ -38,6 +38,18 @@ namespace Business.Controllers
             return _ResourceExamineAppService.ProductionSchedule(workOrds);
         }
 
+        /// <summary>
+        /// 下达,生成领料单
+        /// </summary>
+        /// <param name="workOrds"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Route("CreatePickBill")]
+        public string CreatePickBill(string workOrds)
+        {
+            return _ResourceExamineAppService.CreatePickBill(workOrds);
+        }
+
         /// <summary>
         /// 资源检查
         /// </summary>