Murphy 2 лет назад
Родитель
Сommit
d82a138ccd

+ 1 - 1
MicroServices/Business/Business.Application.Contracts/ReplenishmentManagement/IReplenishmentAppService.cs

@@ -79,7 +79,7 @@ namespace Business.ReplenishmentManagement
         /// 删除周计划
         /// </summary>
         /// <returns></returns>
-        Task<string> DeleteWeekPlan(string productorder, long factory_id);
+        Task<string> DeleteWeekPlan(long weekplanid, string productorder, long factory_id);
 
 
         /// <summary>

+ 38 - 23
MicroServices/Business/Business.Application/ReplenishmentManagement/ReplenishmentAppService.cs

@@ -5912,36 +5912,51 @@ namespace Business.Replenishment
             _businessDbContext.BulkUpdate(mysqlStock);
         }
 
-        public async Task<string> DeleteWeekPlan(string productorder, long factory_id)
+        public async Task<string> DeleteWeekPlan(long weekplanid,string productorder, long factory_id)
         {
-            //判断是否下达
-            var workord=_workOrdMaster.Select(a => a.WorkOrd == productorder && a.Domain == factory_id.ToString());
-            if(workord.Count > 0 )
+            //2023/12/16 所有工单类型都能删除,中间件由业务人员自行处理
+            var weekplan =_replenishmentWeekPlan.GetListAsync(a =>a.Id==weekplanid && a.ProductionOrder == productorder && a.factory_id == factory_id &&a.IsReplenishmentModel=="N").Result;
+            var workords=_workOrdMaster.Select(a => a.RecID == weekplanid && a.WorkOrd == productorder && a.Domain == factory_id.ToString());
+            if (weekplan.Count==0 && workords.Count==0)
+                return "Fail|周计划或工单不存在";
+           
+            if(string.IsNullOrEmpty(productorder))
+            {
+                //未同步生产周计划工单,只需要删除导入的周计划
+                await _replenishmentWeekPlan.HardDeleteAsync(a => a.Id == weekplanid && a.ProductionOrder == productorder && a.factory_id == factory_id && a.IsReplenishmentModel=="N");
+                return "OK|删除成功";
+            }else
             {
-                //未下达的工单才可以删除,也就是初始或者已发布的工单
-                if (string.IsNullOrEmpty(workord[0].Status) || workord[0].Status.ToLower()!="p")
+                //判断是否下达
+                var workord = _workOrdMaster.Select(a => a.WorkOrd == productorder && a.Domain == factory_id.ToString());
+                if (workord.Count > 0)
                 {
-                    await _replenishmentWeekPlan.HardDeleteAsync(a => a.ProductionOrder == productorder && a.factory_id == factory_id);
-                    await _mysql_mes_morder.HardDeleteAsync(a => a.morder_no == productorder && a.factory_id == factory_id);
-                    await _mysql_mes_moentry.HardDeleteAsync(a => a.moentry_mono == productorder && a.factory_id == factory_id);
-                    _workOrdMaster.Delete(a => a.WorkOrd == productorder && a.Domain == factory_id.ToString());
-                    _workOrdDetail.Delete(a => a.WorkOrd == productorder && a.Domain == factory_id.ToString());
-                    _workOrdRouting.Delete(a => a.WorkOrd == productorder && a.Domain == factory_id.ToString());
-                    _scheduleResultOpMaster.Delete(a => a.WorkOrd == productorder && a.Domain == factory_id.ToString());
-                    _periodSequenceDet.Delete(a => a.WorkOrds == productorder && a.Domain == factory_id.ToString());
-                    await _mysql_srm_pr_main_occupy.DeleteAsync(a => a.morder_mo == productorder && a.factory_id == factory_id);
-                    await _mysql_srm_po_occupy.DeleteAsync(a => a.morder_mo == productorder && a.factory_id == factory_id);
-                    await _mysql_mes_mooccupy.DeleteAsync(a => a.moo_mo == productorder && a.factory_id == factory_id);
-
-                    return "OK|删除成功";
+                    //未下达的工单才可以删除,也就是初始或者已发布的工单
+                    if (string.IsNullOrEmpty(workord[0].Status) || workord[0].Status.ToLower() != "p")
+                    {
+                        await _replenishmentWeekPlan.HardDeleteAsync(a => a.ProductionOrder == productorder && a.factory_id == factory_id);
+                        await _mysql_mes_morder.HardDeleteAsync(a => a.morder_no == productorder && a.factory_id == factory_id);
+                        await _mysql_mes_moentry.HardDeleteAsync(a => a.moentry_mono == productorder && a.factory_id == factory_id);
+                        _workOrdMaster.Delete(a => a.WorkOrd == productorder && a.Domain == factory_id.ToString());
+                        _workOrdDetail.Delete(a => a.WorkOrd == productorder && a.Domain == factory_id.ToString());
+                        _workOrdRouting.Delete(a => a.WorkOrd == productorder && a.Domain == factory_id.ToString());
+                        _scheduleResultOpMaster.Delete(a => a.WorkOrd == productorder && a.Domain == factory_id.ToString());
+                        _periodSequenceDet.Delete(a => a.WorkOrds == productorder && a.Domain == factory_id.ToString());
+                        await _mysql_ic_item_stockoccupy.HardDeleteAsync(a => a.morder_mo == productorder && a.factory_id == factory_id);
+                        await _mysql_srm_po_occupy.HardDeleteAsync(a => a.morder_mo == productorder && a.factory_id == factory_id);
+                        await _mysql_mes_mooccupy.HardDeleteAsync(a => a.moo_mo == productorder && a.factory_id == factory_id);
+
+                        return "OK|删除成功";
+                    }
+                    else
+                    {
+                        return "Fail|该工单不能删除";
+                    }
                 }
                 else
                 {
-                    return "Fail|该工单不能删除";
+                    return "Fail|工单不存在";
                 }
-            }else
-            {
-                return "Fail|周计划不存在";
             }
         }
     }

+ 2 - 2
MicroServices/Business/Business.HttpApi/Controllers/ReplenishmentController.cs

@@ -161,9 +161,9 @@ namespace Business.Controllers
         /// <returns></returns>
         [HttpGet]
         [Route("deleteweekplan")]
-        public Task<string> DeleteWeekPlan(string productorder, long factory_id)
+        public Task<string> DeleteWeekPlan(long weekplanid, string productorder, long factory_id)
         {
-            return _ReplenishmentAppService.DeleteWeekPlan(productorder,factory_id);
+            return _ReplenishmentAppService.DeleteWeekPlan( weekplanid,productorder,factory_id);
         }
     }
 }