Kaynağa Gözat

周计划删除

Murphy 2 yıl önce
ebeveyn
işleme
aca86f711d

+ 7 - 0
MicroServices/Business/Business.Application.Contracts/ReplenishmentManagement/IReplenishmentAppService.cs

@@ -75,6 +75,13 @@ namespace Business.ReplenishmentManagement
         Task<string> CalcDayPlan(InputDto input);
 
 
+        /// <summary>
+        /// 删除周计划
+        /// </summary>
+        /// <returns></returns>
+        Task<string> DeleteWeekPlan(string productorder, long factory_id);
+
+
         /// <summary>
         /// 计算工单优先级
         /// </summary>

+ 45 - 1
MicroServices/Business/Business.Application/ReplenishmentManagement/ReplenishmentAppService.cs

@@ -137,6 +137,14 @@ namespace Business.Replenishment
         /// </summary>
         private ISqlRepository<WorkOrdRouting> _workOrdRouting;
 
+        /// <summary>
+        /// 排产结果明细
+        /// </summary>
+        private ISqlRepository<ScheduleResultOpMaster> _scheduleResultOpMaster;
+        /// <summary>
+        /// 排产记录表
+        /// </summary>
+        private readonly ISqlRepository<PeriodSequenceDet> _periodSequenceDet;
         /// <summary>
         /// 计划订单表
         /// </summary>
@@ -268,6 +276,7 @@ namespace Business.Replenishment
             ISqlRepository<ShopCalendarWorkCtr> shopCalendarWorkCtr,
             ISqlRepository<PeriodSequenceDet> periodSequenceDet,
             ISqlRepository<QualityLineWorkDetail> qualityLineWorkDetail,
+            ISqlRepository<ScheduleResultOpMaster> scheduleResultOpMaster,
             IRepository<mo_srm_po_main, long> srm_po_main,
             IRepository<srm_po_main, long> mysql_srm_po_main,
             IRepository<mo_srm_purchase, long> srm_purchase,
@@ -330,7 +339,9 @@ namespace Business.Replenishment
             _mysql_mes_mooccupy = mysql_mes_mooccupy;
             _mysql_b_bom_pretreatment = mysql_b_bom_pretreatment;
             _workOrdMaster = workOrdMaster;
-            _custMaster=custMaster;
+            _scheduleResultOpMaster= scheduleResultOpMaster;
+            _periodSequenceDet = periodSequenceDet;
+            _custMaster =custMaster;
             _prodLineDetail = prodLineDetail;
             _lineMaster= lineMaster;
             _ic_bom = ic_bom;
@@ -5885,5 +5896,38 @@ namespace Business.Replenishment
             }
             _businessDbContext.BulkUpdate(mysqlStock);
         }
+
+        public async Task<string> DeleteWeekPlan(string productorder, long factory_id)
+        {
+            //判断是否下达
+            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")
+                {
+                    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|删除成功";
+                }
+                else
+                {
+                    return "Fail|该工单不能删除";
+                }
+            }else
+            {
+                return "Fail|周计划不存在";
+            }
+        }
     }
 }

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

@@ -153,5 +153,17 @@ namespace Business.Controllers
         {
             return _ReplenishmentAppService.CalcDayPlan(input);
         }
+
+        /// <summary>
+        /// 删除周计划
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        [HttpGet]
+        [Route("deleteweekplan")]
+        public Task<string> DeleteWeekPlan(string productorder, long factory_id)
+        {
+            return _ReplenishmentAppService.DeleteWeekPlan(productorder,factory_id);
+        }
     }
 }