|
|
@@ -6641,28 +6641,54 @@ namespace Business.Replenishment
|
|
|
_businessDbContext.BulkUpdate(needupdList);
|
|
|
}
|
|
|
|
|
|
- public async Task<string> DeleteWeekPlan(long weekplanid,string productorder, long factory_id)
|
|
|
+ public async Task<string> DeleteWeekPlan(long weekplanid, string productorder, long factory_id)
|
|
|
{
|
|
|
//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)
|
|
|
+ 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());
|
|
|
+ var morders =_mysql_mes_morder.GetListAsync(a => a.Id == weekplanid && a.morder_no == productorder && a.factory_id == factory_id).Result;
|
|
|
+ if (weekplan.Count == 0 && workords.Count == 0 && morders.Count==0)
|
|
|
return "Fail|周计划或工单不存在";
|
|
|
-
|
|
|
- if(string.IsNullOrEmpty(productorder))
|
|
|
+
|
|
|
+ if (string.IsNullOrEmpty(productorder))
|
|
|
{
|
|
|
//未同步生产周计划工单,只需要删除导入的周计划
|
|
|
- await _replenishmentWeekPlan.HardDeleteAsync(a => a.Id == weekplanid && a.ProductionOrder == productorder && a.factory_id == factory_id && a.IsReplenishmentModel=="N");
|
|
|
+ await _replenishmentWeekPlan.HardDeleteAsync(a => a.Id == weekplanid && a.ProductionOrder == productorder && a.factory_id == factory_id && a.IsReplenishmentModel == "N");
|
|
|
return "OK|删除成功";
|
|
|
- }else
|
|
|
+ }
|
|
|
+ else
|
|
|
{
|
|
|
//判断是否下达
|
|
|
var workord = _workOrdMaster.Select(a => a.WorkOrd == productorder && a.Domain == factory_id.ToString());
|
|
|
if (workord.Count > 0)
|
|
|
{
|
|
|
//未下达的工单才可以删除,也就是初始或者已发布的工单
|
|
|
- if (string.IsNullOrEmpty(workord[0].Status) || workord[0].Status.ToLower()== "p")
|
|
|
+ if (string.IsNullOrEmpty(workord[0].Status) || workord[0].Status.ToLower() == "p")
|
|
|
{
|
|
|
+ if (morders.Any())
|
|
|
+ {
|
|
|
+ //如果是订单类型执行的删除,则将订单表更新成删除。
|
|
|
+ var melist = _mysql_mes_moentry.GetListAsync(x => x.moentry_moid == weekplanid).Result;
|
|
|
+ var entry_id = melist.Select(x => x.soentry_id.GetValueOrDefault()).ToList();
|
|
|
+ List<crm_seorderentry> selist = _mysql_crm_seorderentry.GetListAsync(x => entry_id.Contains(x.Id)).Result;
|
|
|
+ await _mysql_crm_seorderentry.HardDeleteAsync(selist);
|
|
|
+ List<crm_seorder> solist = _mysql_crm_seorder.GetListAsync(x => selist.Select(c => c.seorder_id.GetValueOrDefault()).Contains(x.Id)).Result;
|
|
|
+
|
|
|
+ List<crm_seorderentry> allseList = _mysql_crm_seorderentry.GetListAsync(x => solist.Select(c => c.Id).Contains(x.seorder_id.GetValueOrDefault()) && !entry_id.Contains(x.Id)).Result;
|
|
|
+ List<crm_seorder> delsoList = new List<crm_seorder>();
|
|
|
+ foreach (var so in solist)
|
|
|
+ {
|
|
|
+ if (!allseList.Where(x => x.seorder_id == so.Id).Any())
|
|
|
+ {
|
|
|
+ delsoList.Add(so);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (delsoList.Any())
|
|
|
+ {
|
|
|
+ await _mysql_crm_seorder.HardDeleteAsync(delsoList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
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);
|
|
|
@@ -6674,12 +6700,11 @@ namespace Business.Replenishment
|
|
|
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|该工单不能删除";
|
|
|
+ return "Fail|该工单非下达,请走工单关闭。";
|
|
|
}
|
|
|
}
|
|
|
else
|