Sfoglia il codice sorgente

生产工单调整

Pengxy 1 anno fa
parent
commit
e765c1e321

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

@@ -108,7 +108,7 @@ namespace Business.ReplenishmentManagement
         /// </summary>
         /// <param name="companyId">工厂id</param>
         /// <returns></returns>
-        Task<string> WorkOrdCheckChangePriority(string WorkOrd, string tenant_id, string factory_id, string company_id, string itemNumber, string qty, string LotSerial, string priority);
+        Task<string> WorkOrdCheckChangePriority(string WorkOrd, string tenant_id, string factory_id, string company_id, string itemNumber, string qty, string LotSerial, string priority,string UserNO);
 
         /// <summary>
         /// 生成交货单

+ 81 - 73
MicroServices/Business/Business.Application/ReplenishmentManagement/ReplenishmentAppService.cs

@@ -4897,7 +4897,7 @@ namespace Business.Replenishment
         /// <param name="domain">工厂编码</param>
         /// <returns></returns>
         //计算工单优先级
-        public async Task<string> WorkOrdCheckChangePriority(string WorkOrd, string tenant_id, string factory_id, string company_id, string itemNumber, string qty, string LotSerial, string priority)
+        public async Task<string> WorkOrdCheckChangePriority(string WorkOrd, string tenant_id, string factory_id, string company_id, string itemNumber, string qty, string LotSerial, string priority,string UserNO)
         {
             try
             {
@@ -4916,90 +4916,98 @@ namespace Business.Replenishment
                 long bang_id = help.NextId();
                 var moList = _mysql_mes_morder.GetListAsync(a => a.morder_no == WorkOrd && a.factory_id == factoryid).Result;
                 var moentryList = _mysql_mes_moentry.GetListAsync(a => a.moentry_mono == WorkOrd && a.factory_id == factoryid).Result;
-                var workmasterList = _workOrdMaster.Select(a => a.WorkOrd == WorkOrd && a.Domain == factory_id);
-                var workRoutings = _workOrdRouting.Select(a => a.WorkOrd == WorkOrd && a.Domain == factory_id);
-                var workOrddetails = _workOrdDetail.Select(a => a.WorkOrd == WorkOrd && a.Domain == factory_id);
-                var weekPlan = _replenishmentWeekPlan.GetListAsync(a => a.ProductionOrder == WorkOrd && a.tenant_id == tenantid && a.factory_id == factoryid && a.company_id == companyid).Result;
+                //var workmasterList = _workOrdMaster.Select(a => a.WorkOrd == WorkOrd && a.Domain == factory_id);
+                //var workRoutings = _workOrdRouting.Select(a => a.WorkOrd == WorkOrd && a.Domain == factory_id);
+                //var workOrddetails = _workOrdDetail.Select(a => a.WorkOrd == WorkOrd && a.Domain == factory_id);
+                //var weekPlan = _replenishmentWeekPlan.GetListAsync(a => a.ProductionOrder == WorkOrd && a.tenant_id == tenantid && a.factory_id == factoryid && a.company_id == companyid).Result;
                 //判断
-                if (moList.Count > 0 && workmasterList.Count > 0)
+                if (moList.Count > 0)// && workmasterList.Count > 0)
                 {
+                    var oldqty = moList[0].need_number;
                     moList[0].need_number = newqty;
                     moList[0].morder_production_number = newqty;
 
                     moentryList[0].need_number = newqty;
                     moentryList[0].morder_production_number = newqty;
 
-                    workmasterList[0].LotSerial = LotSerial;
-                    workmasterList[0].Priority = newpriority;
-                    workmasterList[0].QtyOrded = newqty;
+                    //workmasterList[0].LotSerial = LotSerial;
+                    //workmasterList[0].Priority = newpriority;
+                    //workmasterList[0].QtyOrded = newqty;
 
-                    workRoutings?.ForEach(a =>
-                    {
-                        a.QtyOrded = newqty;
-                    });
-
-                    workOrddetails?.ForEach(a =>
-                    {
-                        a.QtyRequired = Math.Ceiling(newqty * a.FrozenBOMQty);
-                    });
-                    weekPlan?.ForEach(a =>
-                    {
-                        a.Priority = newpriority;
-                        a.Qty = newqty;
-                        a.ProductionBatch = LotSerial;
-                    });
-                    await PlanOrderResourceCheck(moList.OrderBy(a => a.moentry_sys_stime).ToList(), moentryList, bang_id, "", true, false, false);
+                    //workRoutings?.ForEach(a =>
+                    //{
+                    //    a.QtyOrded = newqty;
+                    //});
 
-                    using (var unitOfWork = _unitOfWorkManager.Begin(false, true))
+                    //workOrddetails?.ForEach(a =>
+                    //{
+                    //    a.QtyRequired = Math.Ceiling(newqty * a.FrozenBOMQty);
+                    //});
+                    //weekPlan?.ForEach(a =>
+                    //{
+                    //    a.Priority = newpriority;
+                    //    a.Qty = newqty;
+                    //    a.ProductionBatch = LotSerial;
+                    //});
+                    if (oldqty != newqty)
                     {
-                        try
-                        {
-                            _businessDbContext.BulkUpdate(moList);
-                            _businessDbContext.BulkUpdate(moentryList);
-                            _businessDbContext.BulkUpdate(workmasterList);
-                            if (weekPlan.Any())
-                            {
-                                _businessDbContext.BulkUpdate(weekPlan);
-                            }
-                            if (workRoutings.Any())
-                            {
-                                _businessDbContext.BulkUpdate(workRoutings);
-                            }
-                            if (workOrddetails.Any())
-                            {
-                                _businessDbContext.BulkUpdate(workOrddetails);
-                                var nbrList = _nbrMaster.Select(x => x.Domain == param.factoryId.ToString() && x.WorkOrd == WorkOrd && x.Type=="SM").ToList();
-                                if (nbrList.Any())
-                                {
-                                    nbrList.ForEach(x =>
-                                    {
-                                        x.Status = "";
-                                    });
-                                    var nbrDtlList = _nbrDetail.Select(x => nbrList.Select(c => c.RecID).Contains(x.NbrRecID) && x.IsActive).ToList();
-                                    if (nbrDtlList.Any())
-                                    {
-                                        nbrDtlList.ForEach(x =>
-                                        {
-                                            var itemnum = workOrddetails.Find(w => w.ItemNum == x.ItemNum);
-                                            //仅修改大于已发数的领料明细
-                                            x.Status = itemnum == null ? x.Status : (itemnum.QtyRequired > x.QtyRec ? "" : x.Status);
-                                            x.QtyOrd = itemnum == null ? x.QtyOrd : (itemnum.QtyRequired > x.QtyRec ? itemnum.QtyRequired : x.QtyOrd);
-                                            x.CurrQtyOpened = itemnum == null ? x.QtyOrd : (itemnum.QtyRequired > x.QtyRec ? itemnum.QtyRequired : x.QtyOrd);
-                                        });
-                                        _businessDbContext.BulkUpdate(nbrDtlList);
-                                    }
-                                    _businessDbContext.BulkUpdate(nbrList);
-                                }
-                            }
-
-                            await unitOfWork.CompleteAsync();
-                        }
-                        catch (Exception e)
-                        {
-                            unitOfWork.Dispose();
-                            new NLogHelper("ReplenishmentAppService").WriteLog("WorkOrdCheckChangePriority", "工单数据更新失败:" + e.Message, _currentTenant.Id.ToString());
-                        }
+                        await PlanOrderResourceCheck(moList.OrderBy(a => a.moentry_sys_stime).ToList(), moentryList, bang_id, "", true, false, false);
                     }
+                    string sql = $"exec [pr_MES_UpdateWorkOrder] @Domian='{factoryid}',@LotSerial='{LotSerial}',@Priority={newpriority},@Qty={newqty},@WorkOrd='{WorkOrd}',@UserNO='{UserNO}'";
+                    _businessDbContext.Database.ExecuteSqlRaw(sql);
+                    //using (var unitOfWork = _unitOfWorkManager.Begin(false, true))
+                    //{
+                    //    try
+                    //    {
+                    //_businessDbContext.BulkUpdate(moList);
+                    //_businessDbContext.BulkUpdate(moentryList);
+                    //_businessDbContext.BulkUpdate(workmasterList);
+                    //if (weekPlan.Any())
+                    //{
+                    //    _businessDbContext.BulkUpdate(weekPlan);
+                    //}
+                    //if (workRoutings.Any())
+                    //{
+                    //    _businessDbContext.BulkUpdate(workRoutings);
+                    //}
+                    //if (workOrddetails.Any())
+                    //{
+                    //    _businessDbContext.BulkUpdate(workOrddetails);
+                    //    if (oldqty != newqty)
+                    //    {
+                    //        var nbrList = _nbrMaster.Select(x => x.Domain == param.factoryId.ToString() && x.WorkOrd == WorkOrd && x.Type == "SM").ToList();
+                    //        if (nbrList.Any())
+                    //        {
+                    //            nbrList.ForEach(x =>
+                    //            {
+                    //                x.Status = "";
+                    //            });
+                    //            var nbrDtlList = _nbrDetail.Select(x => nbrList.Select(c => c.RecID).Contains(x.NbrRecID) && x.IsActive).ToList();
+                    //            if (nbrDtlList.Any())
+                    //            {
+                    //                nbrDtlList.ForEach(x =>
+                    //                {
+                    //                    var itemnum = workOrddetails.Find(w => w.ItemNum == x.ItemNum);
+                    //                    //仅修改大于已发数的领料明细
+                    //                    x.Status = itemnum == null ? x.Status : (itemnum.QtyRequired > x.QtyRec ? "" : x.Status);
+                    //                    x.QtyOrd = itemnum == null ? x.QtyOrd : (itemnum.QtyRequired > x.QtyRec ? itemnum.QtyRequired : x.QtyOrd);
+                    //                    x.CurrQtyOpened = itemnum == null ? x.QtyOrd : (itemnum.QtyRequired > x.QtyRec ? itemnum.QtyRequired : x.QtyOrd);
+                    //                });
+                    //                _businessDbContext.BulkUpdate(nbrDtlList);
+                    //            }
+                    //            _businessDbContext.BulkUpdate(nbrList);
+                    //        }
+                    //    }
+                    //}
+
+                    //    await unitOfWork.CompleteAsync();
+                    //}
+                    //catch (Exception e)
+                    //{
+                    //    unitOfWork.Dispose();
+                    //    new NLogHelper("ReplenishmentAppService").WriteLog("WorkOrdCheckChangePriority", "工单数据更新失败:" + e.Message, _currentTenant.Id.ToString());
+                    //}
+                    //}
                 }
                 else
                 {

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

@@ -125,9 +125,9 @@ namespace Business.Controllers
         /// <returns></returns>
         [HttpGet]
         [Route("WorkOrdCheckChangePriority")]
-        public Task<string> WorkOrdCheckChangePriority(string WorkOrd, string tenant_id, string factory_id, string company_id, string itemNumber, string qty, string LotSerial, string priority)
+        public Task<string> WorkOrdCheckChangePriority(string WorkOrd, string tenant_id, string factory_id, string company_id, string itemNumber, string qty, string LotSerial, string priority,string UserNO)
         {
-            return _ReplenishmentAppService.WorkOrdCheckChangePriority(WorkOrd, tenant_id, factory_id, company_id, itemNumber, qty, LotSerial, priority);
+            return _ReplenishmentAppService.WorkOrdCheckChangePriority(WorkOrd, tenant_id, factory_id, company_id, itemNumber, qty, LotSerial, priority, UserNO);
         }
 
         /// <summary>

+ 24 - 0
MicroServices/Business/QuartzSettings/logs/logs.txt

@@ -2640,3 +2640,27 @@
 {"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2025-04-08T13:55:24.4877962+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
 {"TaskName":"TestTimeOut","GroupName":"systemquartzjob","BeginDate":"2025-04-08T13:55:24.4921338+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
 {"TaskName":"BOM预处理自动任务","GroupName":"BOM预处理自动任务","BeginDate":"2025-04-08T13:55:24.4939059+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2025-04-14T11:35:56.9442161+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2025-04-14T11:35:56.9808782+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2025-04-14T11:35:56.9843961+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2025-04-14T11:35:56.9860142+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"TestTimeOut","GroupName":"systemquartzjob","BeginDate":"2025-04-14T11:35:56.9902237+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"BOM预处理自动任务","GroupName":"BOM预处理自动任务","BeginDate":"2025-04-14T11:35:56.9925525+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2025-04-14T13:27:01.0470128+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2025-04-14T13:27:01.0847211+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2025-04-14T13:27:01.0873186+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2025-04-14T13:27:01.0890271+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"TestTimeOut","GroupName":"systemquartzjob","BeginDate":"2025-04-14T13:27:01.0929674+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"BOM预处理自动任务","GroupName":"BOM预处理自动任务","BeginDate":"2025-04-14T13:27:01.0948199+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2025-04-14T14:08:23.6551421+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2025-04-14T14:08:23.6921747+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2025-04-14T14:08:23.6950429+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2025-04-14T14:08:23.6964019+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"TestTimeOut","GroupName":"systemquartzjob","BeginDate":"2025-04-14T14:08:23.7018281+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"BOM预处理自动任务","GroupName":"BOM预处理自动任务","BeginDate":"2025-04-14T14:08:23.7040176+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2025-04-14T14:13:28.7351706+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2025-04-14T14:13:28.7699105+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2025-04-14T14:13:28.7728542+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2025-04-14T14:13:28.7745756+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"TestTimeOut","GroupName":"systemquartzjob","BeginDate":"2025-04-14T14:13:28.7795+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"BOM预处理自动任务","GroupName":"BOM预处理自动任务","BeginDate":"2025-04-14T14:13:28.7819015+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}