浏览代码

周计划支持勾选发布

Murphy 2 年之前
父节点
当前提交
395078f2ae

+ 9 - 2
MicroServices/Business/Business.Application.Contracts/ReplenishmentManagement/IReplenishmentAppService.cs

@@ -60,13 +60,20 @@ namespace Business.ReplenishmentManagement
         Task<string> CalcTempWeekPlan(InputDto input);
 
         /// <summary>
-        /// 根据月计划生产周计划
+        /// 发布周计划
         /// </summary>
         /// <param name="companyId">工厂id</param>
         /// <returns></returns>
         Task<string> PublishWeekPlan(InputDto input);
 
-        
+        /// <summary>
+        /// 勾选发布周计划
+        /// </summary>
+        /// <param name="companyId">工厂id</param>
+        /// <returns></returns>
+        Task<string> SelectPublishWeekPlan(string ids, string factoryid);
+
+
         /// <summary>
         /// 每日补货
         /// </summary>

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

@@ -3476,6 +3476,68 @@ namespace Business.Replenishment
             return "OK";
         }
 
+
+        /// <summary>
+        /// 勾选发布周计划
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        public async Task<string> SelectPublishWeekPlan(string ids, string factoryid)
+        {
+            List<long> idList = AnalysisIdList(ids);
+            //主工单发布,子工单需要一起发布
+            var weekPlan = _replenishmentWeekPlan.GetListAsync(a => idList.Contains(a.Id) && a.IsReplenishmentModel == "N" && string.IsNullOrEmpty(a.ProductionStatus) && a.factory_id.ToString()== factoryid).Result.OrderBy(a => a.Priority).ToList();
+            List<mes_morder> mes_Morders = _mysql_mes_morder.GetListAsync(a => weekPlan.Select(p => p.ProductionOrder).ToList().Contains(a.morder_no) && a.factory_id.ToString() == factoryid).Result;
+            if (mes_Morders != null && mes_Morders.Count > 0)
+            {
+                List<mes_morder> mes_Morders_sub = _mysql_mes_morder.GetListAsync(a => mes_Morders.Select(p => p.Id).ToList().Contains(a.parent_id.GetValueOrDefault()) && a.factory_id.ToString() == factoryid).Result;
+                if (mes_Morders_sub != null && mes_Morders_sub.Count > 0)
+                {
+                    mes_Morders.AddRange(mes_Morders_sub);
+                }
+            }
+            List<WorkOrdMaster> workMasters = _workOrdMaster.Select(a => mes_Morders.Select(m => m.morder_no).ToList().Contains(a.WorkOrd) && a.Domain == factoryid);
+            decimal priority = 1;
+            for (int i = 0; i < weekPlan.Count; i++)
+            {
+                weekPlan[i].ProductionStatus = "已发布";
+                weekPlan[i].Priority = priority;
+                workMasters.ForEach(b =>
+                {
+                    if (b.ItemNum == weekPlan[i].ItemNumber && b.WorkOrd == weekPlan[i].ProductionOrder)
+                    {
+                        b.Priority = priority;
+                        b.Status = "p";
+                    }
+                });
+                mes_Morders.ForEach(c =>
+                {
+                    c.morder_state = MorderEnum.Initial_state;
+                });
+                priority++;
+            }
+            _workOrdMaster.Update(workMasters);
+            await _businessDbContext.BulkUpdateAsync(mes_Morders);
+            await _businessDbContext.BulkUpdateAsync(weekPlan);
+
+            return "OK";
+        }
+
+        private List<long> AnalysisIdList(string ids)
+        {
+            if (string.IsNullOrEmpty(ids))
+            {
+                throw new NotImplementedException("传入参数不正确,请选择");
+            }
+            Array alist = ids.Split(',');
+            List<long> idList = new List<long>();
+            foreach (string longid in alist)
+            {
+                idList.Add(long.Parse(longid));
+            }
+            return idList;
+        }
+
         /// <summary>
         /// 每天补货
         /// </summary>

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

@@ -5709,7 +5709,7 @@ namespace Business.ResourceExamineManagement
                 }).ToList();
                 //需要测试工单没有做资源检查会不会报错
                 var examineIds = workExamineResult.Select(s => s.examineId).ToList();
-                var examines=_mysql_bom_child_examine.GetListAsync(a => examineIds.Contains(a.examine_id.Value) && a.erp_cls==3 && a.factory_id.ToString() == domain).Result;
+                var examines=_mysql_bom_child_examine.GetListAsync(a => examineIds.Contains(a.examine_id.Value) && a.erp_cls==3 && a.is_use && a.factory_id.ToString() == domain).Result;
                 var pickBills = _nbrDetail.Select(a => workordList.Contains(a.WorkOrd) && a.Type.ToUpper()=="SM" && a.Domain == domain);
                 var dsList=_srm_polist_ds.Select(a => a.requestdate <= endTime && a.domain==domain);
                 var itemList = _itemMaster.Select(a => examines.Select(e=>e.item_number).Distinct().ToList().Contains(a.ItemNum) && a.Domain == domain);

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

@@ -130,6 +130,18 @@ namespace Business.Controllers
             return _ReplenishmentAppService.PublishWeekPlan(input);
         }
 
+        /// <summary>
+        /// 勾选发布周计划
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Route("selectpublishweekplan")]
+        public Task<string> ReceiveResult(string ids,string factoryid)
+        {
+            return _ReplenishmentAppService.SelectPublishWeekPlan(ids,factoryid);
+        }
+
         /// <summary>
         /// 定时任务长周期物料
         /// </summary>