瀏覽代碼

联调问题修改

Murphy 2 年之前
父節點
當前提交
db9c8ae71f

+ 142 - 117
MicroServices/Business/Business.Application/ReplenishmentManagement/ReplenishmentAppService.cs

@@ -109,6 +109,7 @@ namespace Business.Replenishment
         private readonly IRepository<ReplenishmentWeekPlan, long> _replenishmentWeekPlan;
         private readonly IRepository<b_examine_result, long> _mysql_examine_result;
         private readonly IRepository<b_bom_child_examine, long> _mysql_bom_child_examine;
+        private readonly IRepository<ReplenishmentServiceLevel, long> _replenishmentServiceLevel;
 
         /// <summary>
         /// 年度销售预测
@@ -305,6 +306,7 @@ namespace Business.Replenishment
             IRepository<ReplenishmentWeekPlan, long> replenishmentWeekPlan,
             IRepository<b_examine_result, long> mysql_examine_result,
             IRepository<b_bom_child_examine, long> mysql_bom_child_examine,
+            IRepository<ReplenishmentServiceLevel, long> replenishmentServiceLevel,
 
             SerialNumberAppService serialNumberAppService,
             PretreatmentAppService pretreatmentAppService,
@@ -380,6 +382,7 @@ namespace Business.Replenishment
             _replenishmentWeekPlan=replenishmentWeekPlan;
             _mysql_examine_result = mysql_examine_result;
             _mysql_bom_child_examine= mysql_bom_child_examine;
+            _replenishmentServiceLevel = replenishmentServiceLevel;
 
             _PlatformInventory = PlatformInventory;
             _workOrdRouting = workOrdRouting;
@@ -417,14 +420,15 @@ namespace Business.Replenishment
             //获取当前导入或修改数据
             List<YearDemandManagement> yearDemands = _yearDemandManagement.GetListAsync(p => p.Year == input.year && p.factory_id == input.factory_id && !p.IsDeleted).Result.OrderBy(p => p.OrderNum).ThenBy(o => o.PlanMonth).ToList();
             //标准工艺路径表
-            List<RoutingOpDetail> routingOps = _routingOpDetail.Select(p => yearDemands.Select(m => m.SAPItemNumber).Contains(p.RoutingCode) && p.Domain == input.factory_id.ToString() && p.IsActive);
-            var routingOpList = routingOps.Where(x => x.Descr == "组装").ToList();
+            var sapItemList = yearDemands.Select(m => m.SAPItemNumber).Distinct().ToList();
+            List<RoutingOpDetail> routingOps = _routingOpDetail.Select(p => sapItemList.Contains(p.RoutingCode) && p.Domain == input.factory_id.ToString() && p.IsActive);
+            var routingOpList = routingOps.Where(x => x.Descr == "去溢料").ToList();
             //生产线明细表
-            List<ProdLineDetail> prodLines = _prodLineDetail.Select(p => yearDemands.Select(m => m.SAPItemNumber).Contains(p.Part) && p.Domain == input.factory_id.ToString() && p.IsActive && routingOpList.Select(m => m.Op).Contains(p.Op)).OrderBy(x => x.Sequence).ToList();
-            List<LocationDetail> locations = _locationDetail.Select(x => yearDemands.Select(m => m.SAPItemNumber).Contains(x.ItemNum) && x.Domain == input.factory_id.ToString() && x.IsActive).ToList();
+            List<ProdLineDetail> prodLines = _prodLineDetail.Select(p => sapItemList.Contains(p.Part) && p.Domain == input.factory_id.ToString() && p.IsActive && routingOpList.Select(m => m.Op).Contains(p.Op)).OrderBy(x => x.Sequence).ToList();
+            List<LocationDetail> locations = _locationDetail.Select(x => sapItemList.Contains(x.ItemNum) && x.Domain == input.factory_id.ToString() && x.IsActive).ToList();
             //平台库存
-            var platformInvList = _PlatformInventory.GetListAsync(a => yearDemands.Select(m => m.SAPItemNumber).Contains(a.SAPItemNumber) && a.factory_id == input.factory_id && !a.IsDeleted).Result;
-            var replenishmentModels = _replenishmentROP.GetListAsync(x => !x.IsDeleted && x.isparam && yearDemands.Select(m => m.SAPItemNumber).Contains(x.number)).Result.ToList();
+            var platformInvList = _PlatformInventory.GetListAsync(a => sapItemList.Contains(a.SAPItemNumber) && a.factory_id == input.factory_id && !a.IsDeleted).Result;
+            var replenishmentModels = _replenishmentROP.GetListAsync(x => !x.IsDeleted && x.isparam && sapItemList.Contains(x.number)).Result.ToList();
             // 获取某年某月的起始日期和结束日期
             int year = input.year;
             int month = DateTime.Now.Month;
@@ -537,8 +541,9 @@ namespace Business.Replenishment
             {
                 try
                 {
-                    await _replenishmentAnnualProduction.DeleteAsync(a => a.Year == input.year && a.factory_id == input.factory_id);
+                    await _replenishmentAnnualProduction.HardDeleteAsync(a => a.Year == input.year && a.factory_id == input.factory_id);
                     await _replenishmentAnnualProduction.InsertManyAsync(annualProductionOutlines);
+                    await CalcLongPeriodItemPR(input);
                     await CalcROP(input);
                     await SaveProductionMasterPlan(input, annualProductionOutlines);
                     await unitOfWork.CompleteAsync();
@@ -563,10 +568,10 @@ namespace Business.Replenishment
             //计算当前年月的N0,N+1,N+2
             List<string> planMons = GetPlanMonth(4);
             List<ProductionMasterPlan> productionMasters= new List<ProductionMasterPlan>();
-            List<ProductionMasterPlan> pre3MonthPlan = _productionMasterPlan.GetListAsync(a => GetPlanMonth(-3).Contains(a.PlanMonth) && a.factory_id == input.factory_id && a.tenant_id == input.tenant_id && a.company_id == input.company_id).Result;
+            List<ProductionMasterPlan> pre3MonthPlan = _productionMasterPlan.GetListAsync(a => GetPlanMonth(-3).Contains(a.PlanMonth) && a.factory_id == input.factory_id).Result;
             //N0,N+1,N+2月度发货计划
-            var annualProduction = _monthlyShipmentPlan.Select(x => planMons.Contains(x.PlanMonth) && !x.IsDeleted && x.tenant_id == input.tenant_id && x.company_id == input.company_id && x.factory_id == input.factory_id).OrderBy(p => p.PlanMonth).ThenBy(o => o.OrderNum).ToList();
-            var productionMasterPlan = _productionMasterPlan.GetListAsync(x => planMons.Contains(x.PlanMonth) && !x.IsDeleted && x.tenant_id == input.tenant_id && x.company_id == input.company_id && x.factory_id == input.factory_id).Result.OrderBy(p => p.PlanMonth).ThenBy(o => o.OrderNum).ToList();
+            var annualProduction = _monthlyShipmentPlan.Select(x => planMons.Contains(x.PlanMonth) && !x.IsDeleted  && x.factory_id == input.factory_id).OrderBy(p => p.PlanMonth).ThenBy(o => o.OrderNum).ToList();
+            var productionMasterPlan = _productionMasterPlan.GetListAsync(x => planMons.Contains(x.PlanMonth) && !x.IsDeleted  && x.factory_id == input.factory_id).Result.OrderBy(p => p.PlanMonth).ThenBy(o => o.OrderNum).ToList();
             List<LocationDetail> locations = _locationDetail.Select(x => annualProduction.Select(m => m.SAPItemNumber).Contains(x.ItemNum) && x.Domain == input.factory_id.ToString() && x.IsActive).ToList();
             var InProdcutQty=GetInProdcutQty(annualProduction.Select(m => m.SAPItemNumber).ToList(),input);
             var itemStock = CalcStock(annualProduction.Select(m => m.SAPItemNumber).ToList(),input);
@@ -633,7 +638,7 @@ namespace Business.Replenishment
                 try
                 {
                     var planList = productionMasters.Select(a => a.PlanMonth).ToList();
-                    await _productionMasterPlan.DeleteAsync(a => planList.Contains(a.PlanMonth) && a.tenant_id == input.tenant_id && a.factory_id == input.factory_id);
+                    await _productionMasterPlan.DeleteAsync(a => planList.Contains(a.PlanMonth) && a.factory_id == input.factory_id);
                     await _productionMasterPlan.InsertManyAsync(productionMasters);
                     await unitOfWork.CompleteAsync();
                 }
@@ -744,12 +749,12 @@ namespace Business.Replenishment
             string planMonthMax = $"{DateTime.Now.AddMonths(replenishmentDto.SaleFcstMonth).Year}-{DateTime.Now.AddMonths(replenishmentDto.SaleFcstMonth).Month.ToString("00")}";
             var planList = _monthlyShipmentPlan.Select(a => a.PlanMonth.CompareTo(planMonth) >= 0 && a.PlanMonth.CompareTo(planMonthMax) <= 0 && !a.IsDeleted).ToList();
 
-            var boms = _ic_bom.GetListAsync(a => planList.Select(p => p.SAPItemNumber).ToList().Contains(a.item_number) && a.tenant_id == input.tenant_id && a.factory_id == input.factory_id).Result;
+            var boms = _ic_bom.GetListAsync(a => planList.Select(p => p.SAPItemNumber).ToList().Contains(a.item_number) && a.factory_id == input.factory_id).Result;
             var pretreatments = _mysql_b_bom_pretreatment.GetListAsync(s => boms.Select(c => c.mysql_id).ToList().Contains(s.sourceid)).Result;
             List<mo_ic_bom> autoCreates = new List<mo_ic_bom>();
             boms.ForEach(p =>
             {
-                if (!pretreatments.Where(s => s.sourceid == p.Id).Any())
+                if (!pretreatments.Where(s => s.sourceid == p.mysql_id).Any())
                 {
                     autoCreates.Add(p);
                 }
@@ -759,9 +764,9 @@ namespace Business.Replenishment
                 AutoCreateBomBill(input.company_id.ToString(), autoCreates);
                 pretreatments = _mysql_b_bom_pretreatment.GetListAsync(s => boms.Select(c => c.mysql_id).ToList().Contains(s.sourceid)).Result;
             }
-            var itemList = _ic_item.GetListAsync(a => pretreatments.Select(p => p.item_number).Contains(a.number) && a.tenant_id == input.tenant_id && a.company_id == input.company_id && !a.IsDeleted).Result;
+            var itemList = _ic_item.GetListAsync(a => pretreatments.Select(p => p.item_number).Contains(a.number) && !a.IsDeleted).Result;
             var mesItemList = _itemMaster.Select(a => pretreatments.Select(p => p.item_number).Contains(a.ItemNum) && a.Domain == input.factory_id.ToString() && a.IsActive);
-            var srm_purchaseList = _srmPurchase.GetListAsync(a => pretreatments.Select(p => p.item_number).Contains(a.number) && a.tenant_id == input.tenant_id && a.company_id == input.company_id && !a.IsDeleted).Result;
+            var srm_purchaseList = _srmPurchase.GetListAsync(a => pretreatments.Select(p => p.item_number).Contains(a.number) && !a.IsDeleted).Result;
 
             //获取补货模型前H周期和未来F个周期的数据
             var ropModelList = _replenishmentROP.GetListAsync(a => a.zero_based_seqno >= -1 * replenishmentDto.HistoryOutStockMonth && a.zero_based_seqno <= replenishmentDto.SaleFcstMonth).Result;
@@ -803,6 +808,9 @@ namespace Business.Replenishment
                         updateList.Add(m);
                     }
                 });
+            var serviceList=_replenishmentServiceLevel.GetListAsync(a => a.factory_id == input.factory_id).Result;
+            List<ReplenishmentServiceLevel> addServiceLevelList = new List<ReplenishmentServiceLevel>();
+            List<ReplenishmentServiceLevel> updateServiceLevelList = new List<ReplenishmentServiceLevel>();
             //需要按照成品资源检查计算原材料
             planList?.Where(s => s.PlanMonth == planMonth).ToList()?.ForEach(a =>
             {
@@ -877,6 +885,90 @@ namespace Business.Replenishment
                                 rop.supply_leadtime = srm_purchaseList.Find(s => s.number == pretreatments[i].item_number).lead_time;
                             }
                             CalcFMRAndABC(rop, replenishmentDto, shipList, pickbilllist, input);
+                            if(serviceList.Any(s=>s.number==rop.number))
+                            {
+                                var rs = serviceList.Find(s => s.number == rop.number);
+                                //总的移库次数
+                                int totalCount = shipList.Count() + pickbilllist.Count();
+                                //平均出库次数
+                                decimal avgOutStock = totalCount / replenishmentDto.HistoryOutStockMonth;
+
+                                //总出货金额
+                                decimal? totalPrice = shipList.Sum(a => a.Price * a.QtyToShip);
+                                //按照物料分组统计出货金额
+                                var itemGroup = shipList.GroupBy(p => p.ContainerItem)
+                                     .Select(p => new ASNBOLShipperDetail
+                                     {
+                                         Price = p.Sum(a => a.Price * a.QtyToShip) * 100 / totalPrice,
+                                         ContainerItem = p.Key
+                                     }).ToList().OrderByDescending(c => c.Price).ThenByDescending(c => c.ContainerItem);
+                                rs.number = rop.number;
+                                rs.name = rop.name;
+                                rs.model = rop.model;
+                                rs.item_type = icItem.item_type;
+                                rs.fversion = rop.fversion;
+                                rs.totalCount = totalCount;
+                                rs.avgOutStock = avgOutStock;
+                                rs.totalPrice = totalPrice;
+                                if(itemGroup.Count()>0 && itemGroup.First(p => p.ContainerItem == rop.number)!=null)
+                                {
+                                    rs.Price= itemGroup.First(p => p.ContainerItem == rop.number).Price;
+                                }else
+                                {
+                                    rs.Price = 0;
+                                }
+                                rs.abc = rop.abc;
+                                rs.fmr = rop.fmr;
+                                rs.service_level_pct = rop.service_level_pct;
+                                rs.factory_id = input.factory_id;
+                                rs.tenant_id = input.tenant_id;
+                                rs.company_id = input.company_id;
+                                rs.update_time = DateTime.Now;
+                                updateServiceLevelList.Add(rs);
+                            }
+                            else
+                            {
+                                //总的移库次数
+                                int totalCount = shipList.Count() + pickbilllist.Count();
+                                //平均出库次数
+                                decimal avgOutStock = totalCount / replenishmentDto.HistoryOutStockMonth;
+
+                                //总出货金额
+                                decimal? totalPrice = shipList.Sum(a => a.Price * a.QtyToShip);
+                                //按照物料分组统计出货金额
+                                var itemGroup = shipList.GroupBy(p => p.ContainerItem)
+                                     .Select(p => new ASNBOLShipperDetail
+                                     {
+                                         Price = p.Sum(a => a.Price * a.QtyToShip) * 100 / totalPrice,
+                                         ContainerItem = p.Key
+                                     }).ToList().OrderByDescending(c => c.Price).ThenByDescending(c => c.ContainerItem);
+                                ReplenishmentServiceLevel rs = new ReplenishmentServiceLevel();
+                                rs.number = rop.number;
+                                rs.name = rop.name;
+                                rs.model = rop.model;
+                                rs.item_type = icItem.item_type;
+                                rs.fversion = rop.fversion;
+                                rs.totalCount = totalCount;
+                                rs.avgOutStock = avgOutStock;
+                                rs.totalPrice = totalPrice;
+                                if (itemGroup.Count() > 0 && itemGroup.First(p => p.ContainerItem == rop.number) != null)
+                                {
+                                    rs.Price = itemGroup.First(p => p.ContainerItem == rop.number).Price;
+                                }
+                                else
+                                {
+                                    rs.Price = 0;
+                                }
+                                rs.abc = rop.abc;
+                                rs.fmr = rop.fmr;
+                                rs.service_level_pct = rop.service_level_pct;
+                                rs.factory_id = input.factory_id;
+                                rs.tenant_id = input.tenant_id;
+                                rs.company_id = input.company_id;
+                                rs.create_time = DateTime.Now;
+                                rs.GenerateNewId(help.NextId());
+                                addServiceLevelList.Add(rs);
+                            }
                             rop.security_stock = Math.Ceiling((decimal)(mathtool.InverseCumulativeDistribution((double)rop.service_level_pct.Value) * (double)rop.monthl_avg_demand_variance));
                             rop.eop = Math.Ceiling(rop.monthl_avg_demand.Value * rop.supply_leadtime.Value / DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month));
                             rop.rop_computed = rop.security_stock + rop.eop;
@@ -893,9 +985,11 @@ namespace Business.Replenishment
                 }
             });
             addList?.ForEach(item => { item.GenerateNewId(help.NextId()); });
-
+            addServiceLevelList?.ForEach(item => { item.GenerateNewId(help.NextId()); });
             await _replenishmentROP.InsertManyAsync(addList);
             await _replenishmentROP.UpdateManyAsync(updateList);
+            await _replenishmentServiceLevel.InsertManyAsync(addServiceLevelList);
+            await _replenishmentServiceLevel.UpdateManyAsync(updateServiceLevelList);
             var ropModeAllList = _replenishmentROP.GetListAsync(a => a.year != DateTime.Now.Year && a.seqno != DateTime.Now.Month && a.isparam).Result;
             ropModeAllList?.ForEach(item => { item.seqno = item.seqno - 1; });
             await _replenishmentROP.UpdateManyAsync(ropModeAllList);
@@ -916,8 +1010,8 @@ namespace Business.Replenishment
             string planMonthMax = $"{DateTime.Now.AddMonths(replenishmentDto.SaleFcstMonth).Year}-{DateTime.Now.AddMonths(replenishmentDto.SaleFcstMonth).Month.ToString("00")}";
             var planList = _monthlyShipmentPlan.Select(a => a.PlanMonth.CompareTo(planMonth) >= 0 && a.PlanMonth.CompareTo(planMonthMax) <= 0 && !a.IsDeleted).ToList();
             //发货计划物料列表
-            List<string> planItemList = planList?.Select(a => a.SAPItemNumber).ToList();
-            var itemList = _ic_item.GetListAsync(a => planList.Select(p => p.SAPItemNumber).Contains(a.number) && a.tenant_id == input.tenant_id && a.company_id == input.company_id && !a.IsDeleted).Result;
+            List<string> planItemList = planList?.Select(a => a.SAPItemNumber).Distinct().ToList();
+            var itemList = _ic_item.GetListAsync(a => planList.Select(p => p.SAPItemNumber).Contains(a.number) && !a.IsDeleted).Result;
             var bomList = _ic_bom.GetListAsync(a => planItemList.Contains(a.item_number) && !a.IsDeleted && a.factory_id == input.factory_id).Result;
             var monthPlan = _productionMasterPlan.GetListAsync(a => planItemList.Contains(a.ItemNumber) && !a.IsDeleted && a.factory_id == input.factory_id).Result;
             //获取补货模型前H周期和未来F个周期的数据
@@ -931,18 +1025,18 @@ namespace Business.Replenishment
             int week = Convert.ToInt32(currentTime.DayOfWeek);
             week = week == 0 ? 7 : week;
 
-            int count = planList.Count * 12;
+            int count = planItemList.Count * 12;
             var list = _serialNumberAppService.GetBillNo(input.factory_id.ToString(), "MPO", count, "", 1);
             var nbrlistDto = _serialNumberAppService.GetBillNo(input.factory_id.ToString(), "M5", count, "", 1);
             int j = 0;
             for (int i=0;i<12;i++)
             {
-                planList.ForEach(a =>
+                planList.Where(c=>c.PlanMonth== planMonth).ToList().ForEach(a =>
                 {
                     var ic_item = itemList.Find(x => x.number == a.SAPItemNumber);
                     var itemrop= ropModelList.Find(x=>x.number == a.SAPItemNumber);
                     var monthPlanItem = monthPlan.Find(x => x.ItemNumber == a.SAPItemNumber);
-                    if (ic_item?.erp_cls == 1)
+                    if (ic_item?.erp_cls == 1 && itemrop!=null)
                     {
                         var bom = bomList.Find(b => b.item_number == a.SAPItemNumber);
                         mes_morder mes_Morder = new mes_morder();
@@ -1000,7 +1094,6 @@ namespace Business.Replenishment
                         moentryList.Add(mes_Moentry);
 
                         ReplenishmentWeekPlan weekItem = new ReplenishmentWeekPlan();
-                        weekItem.GenerateNewId(help.NextId());
                         weekItem.Priority = 1;
                         weekItem.Area = itemrop.area;
                         weekItem.PlanStartDate = mes_Morder.moentry_stime.Value;
@@ -1020,7 +1113,12 @@ namespace Business.Replenishment
                         weekItem.Qty = mes_Morder.morder_production_number.Value;
                         weekItem.ItemStatus = "";
                         weekItem.PlanKittingDate = DateTime.Now;
-                        if(itemrop.area=="国内")
+                        weekItem.tenant_id = input.tenant_id;
+                        weekItem.factory_id = input.factory_id;
+                        weekItem.company_id = input.company_id;
+                        weekItem.org_id = input.org_id;
+                        weekItem.create_time = DateTime.Now;
+                        if (itemrop.area=="国内")
                         {
                             weekItem.SterilizationDate = mes_Morder.moentry_sys_etime.Value.AddDays(8);
                         }else
@@ -1109,6 +1207,12 @@ namespace Business.Replenishment
                     a.PackageHours = Packaging == null ? 0 : Packaging.RunTime * a.Qty;
                     a.TotalHours = a.AssembleHours + a.HeatSealHours + a.PackageHours;
                 }
+
+                var workOrd = workOrds.Find(b => b.WorkOrd == a.OrderNO);
+                if(workOrd!=null)
+                {
+                    a.Priority = workOrd.Priority;
+                }
             });
 
             await _replenishmentWeekPlan.InsertManyAsync(weekPlan);
@@ -1151,7 +1255,7 @@ namespace Business.Replenishment
         {
             ReplenishmentDto replenishmentDto = GetROPParam(input.factory_id.ToString());
             //DOP运行资源检查每个成品和半成品SKU的可用库存,当可用库存 <= 修正后ROP时,自动生成月度计划订单(MPlan order,MPO48年月日3位流水号)= EOP;可用库存为没有被其他SO和PO占用的(合格成品或半成品库存 + WIP);
-            var ropModelList = _replenishmentROP.GetListAsync(a =>a.isparam && a.factory_id==input.factory_id && a.company_id==input.company_id && !a.IsDeleted).Result;
+            var ropModelList = _replenishmentROP.GetListAsync(a =>a.isparam && a.factory_id==input.factory_id  && !a.IsDeleted).Result;
             var itemStock = CalcStock(ropModelList.Select(a => a.number).ToList(), input);
             var bomList = _ic_bom.GetListAsync(a => ropModelList.Select(a => a.number).ToList().Contains(a.item_number) && !a.IsDeleted && a.factory_id == input.factory_id).Result;
             List<mes_morder> moList = new List<mes_morder>();
@@ -1427,7 +1531,7 @@ namespace Business.Replenishment
         public async Task<string> CalcDayPlanSafeStock(InputDto input)
         {
             ReplenishmentDto replenishmentDto = GetROPParam(input.factory_id.ToString());
-            var ropModelList = _replenishmentROP.GetListAsync(a => a.isparam && a.factory_id == input.factory_id && a.company_id == input.company_id && !a.IsDeleted).Result;
+            var ropModelList = _replenishmentROP.GetListAsync(a => a.isparam && a.factory_id == input.factory_id  && !a.IsDeleted).Result;
             var itemStock = CalcStock(ropModelList.Select(a => a.number).ToList(), input);
             var bomList = _ic_bom.GetListAsync(a => ropModelList.Select(a => a.number).ToList().Contains(a.item_number) && !a.IsDeleted && a.factory_id == input.factory_id).Result;
             List<mes_morder> moList = new List<mes_morder>();
@@ -2009,12 +2113,12 @@ namespace Business.Replenishment
         public List<EOPDto> CalcStock(List<string> itemNumbers,InputDto input)
         {
             List<EOPDto> itemQty = new List<EOPDto>();
-            var itemList=_mysql_ic_item.GetListAsync(a => itemNumbers.Contains(a.number) && a.factory_id == input.factory_id && a.company_id ==input.company_id && !a.IsDeleted).Result;
-            var itemStockList=_mysql_ic_item_stock.GetListAsync(a => itemNumbers.Contains(a.icitem_number) && a.factory_id == input.factory_id && a.company_id == input.company_id && !a.IsDeleted).Result;
-            var pooccupylist=_mysql_srm_po_occupy.GetListAsync(a => a.state == 1 && !a.IsDeleted && a.factory_id == input.factory_id && a.company_id == input.company_id && a.tenant_id == input.tenant_id).Result;
-            var poList = _mysql_srm_po_list.GetListAsync(a=> pooccupylist.Select(p=>p.polist_id).ToList().Contains(a.Id) && pooccupylist.Select(p => p.polist_row).ToList().Contains(a.polist_row) && a.factory_id == input.factory_id && a.company_id == input.company_id && !a.IsDeleted).Result;
-            var molist=_mysql_mes_morder.GetListAsync(a => itemNumbers.Contains(a.product_code) && a.factory_id == input.factory_id && a.company_id == input.company_id && !a.IsDeleted).Result;
-            var proccupylist=_mysql_srm_pr_main_occupy.GetListAsync(a=> molist.Select(p=>p.morder_no).ToList().Contains(a.morder_mo) && a.factory_id == input.factory_id && a.company_id == input.company_id && !a.IsDeleted).Result;
+            var itemList=_mysql_ic_item.GetListAsync(a => itemNumbers.Contains(a.number) && a.factory_id == input.factory_id  && !a.IsDeleted).Result;
+            var itemStockList=_mysql_ic_item_stock.GetListAsync(a => itemNumbers.Contains(a.icitem_number) && a.factory_id == input.factory_id  && !a.IsDeleted).Result;
+            var pooccupylist=_mysql_srm_po_occupy.GetListAsync(a => a.state == 1 && !a.IsDeleted && a.factory_id == input.factory_id ).Result;
+            var poList = _mysql_srm_po_list.GetListAsync(a=> pooccupylist.Select(p=>p.polist_id).ToList().Contains(a.Id) && pooccupylist.Select(p => p.polist_row).ToList().Contains(a.polist_row) && a.factory_id == input.factory_id  && !a.IsDeleted).Result;
+            var molist=_mysql_mes_morder.GetListAsync(a => itemNumbers.Contains(a.product_code) && a.factory_id == input.factory_id  && !a.IsDeleted).Result;
+            var proccupylist=_mysql_srm_pr_main_occupy.GetListAsync(a=> molist.Select(p=>p.morder_no).ToList().Contains(a.morder_mo) && a.factory_id == input.factory_id  && !a.IsDeleted).Result;
 
             itemNumbers.ForEach(a =>
             {
@@ -2062,7 +2166,7 @@ namespace Business.Replenishment
         public async Task<string> PlanOrderResourceCheck(List<mes_morder> Mes_Morders, List<mes_moentry> moentryList,long bangid, InputDto input)
         {
             //先排除锁定期内的工单 //优先级排序
-            var sysSet = _generalizedCodeMaster.Select(s => s.FldName == "SystemConfig" && s.Val == "WorkOrderLockPeriod" && s.Domain == input.company_id.ToString()).ToList();
+            var sysSet = _generalizedCodeMaster.Select(s => s.FldName == "SystemConfig" && s.Val == "WorkOrderLockPeriod" && s.Domain == input.factory_id.ToString()).ToList();
             decimal lookDay = 0;
             if (sysSet.Any())
             {
@@ -2210,12 +2314,12 @@ namespace Business.Replenishment
             //List<mes_moentry> mo_Mes_Moentries = _mysql_mes_moentry.GetListAsync(x => morderIdList.Contains(x.moentry_moid.Value)).Result;
             List<mes_moentry> mo_Mes_Moentries = moentryList;
             //获取订单行数据
-            List<crm_seorderentry> sentrys = _mysql_crm_seorderentry.GetListAsync(p => p.company_id == input.company_id && p.factory_id == input.factoryId && !p.IsDeleted && mo_Mes_Moentries.Select(x => x.soentry_id).Contains(p.Id)).Result;
+            List<crm_seorderentry> sentrys = _mysql_crm_seorderentry.GetListAsync(p => p.factory_id == input.factoryId && !p.IsDeleted && mo_Mes_Moentries.Select(x => x.soentry_id).Contains(p.Id)).Result;
 
             //删除同步Mysql后旧数据
             await DeleteMySqlOldData(sentrys);
 
-            List<mo_ic_bom> boms = _ic_bom.GetListAsync(p => mo_Mes_Morders.Select(m => m.bom_number).Contains(p.bom_number) && p.factory_id == input.factoryId && p.company_id == input.company_id && !p.IsDeleted).Result.ToList();
+            List<mo_ic_bom> boms = _ic_bom.GetListAsync(p => mo_Mes_Morders.Select(m => m.bom_number).Contains(p.bom_number) && p.factory_id == input.factoryId && !p.IsDeleted).Result.ToList();
 
             //物料bom
             List<mo_ic_bom> bomlist = new List<mo_ic_bom>();
@@ -2298,7 +2402,7 @@ namespace Business.Replenishment
                 _CalcBomViewAppService.BomStock(getBomList, stocklist, bangid);
 
                 //计算
-                _CalcBomViewAppService.CalcView(getBomList, bangid, item.need_number.GetValueOrDefault(), item.start_time, sklist, sentry, icitemlist);
+                _CalcBomViewAppService.CalcView(getBomList, bangid, item.need_number.GetValueOrDefault(), item.moentry_sys_stime, sklist, sentry, icitemlist);
 
                 //TODO:最晚开始时间
                 var curFacDtl = leadTimeList.FirstOrDefault(p => p.item_id == childBom.icitem_id);
@@ -3035,6 +3139,7 @@ namespace Business.Replenishment
         /// <returns></returns>
         public async Task<string> CalcLongPeriodItemPR(InputDto input)
         {
+            var ropParam = GetROPParam(input.factory_id.ToString());
             //获取滚动未来六个月数据
             var monthlist = GetPlanMonth(6);
             var productList = _replenishmentAnnualProduction.GetListAsync(a => monthlist.Contains(a.PlanMonth) && !a.IsDeleted && a.factory_id == input.factory_id).Result.OrderBy(s=>s.OrderNum).ToList();
@@ -3050,6 +3155,8 @@ namespace Business.Replenishment
             {
                 var ic_item = planList.Find(x => x.number == productList[i].SAPItemNumber);
                 var bom = bomList.Find(a => a.item_number == productList[i].SAPItemNumber);
+                if (ic_item.PurLT < ropParam.LongPeriodDay)
+                    continue;
                 mes_morder mes_Morder = new mes_morder();
                 mes_Morder.GenerateNewId(help.NextId());
                 mes_Morder.morder_type = MorderEnum.JhMorder;
@@ -3206,88 +3313,6 @@ namespace Business.Replenishment
             return replenishmentDto;
         }
 
-        /// <summary>
-        /// 计算ABC分类和FMR分类
-        /// </summary>
-        /// <param name="replenishmentModels"></param>
-        /// <param name="replenishmentDto"></param>
-        /// <param name="input"></param>
-        /// <param name="type">1为全部一起算,2为成品算成品原材料算原材料</param>
-        public void CalcFMRAndABC(List<ReplenishmentROP> replenishmentModels, ReplenishmentDto replenishmentDto, InputDto input, int type)
-        {
-            var itemNumList = replenishmentModels?.Select(a => a.number).ToList();
-            //发货出库记录
-            var shipList = _ASNBOLShipperDetail.Select(a => a.Domain == input.factory_id.ToString() && a.IsActive && a.shtype == "SH" && a.Typed != "S" && a.ShipDate >= DateTime.Now.AddMonths(-6) && a.RealQty > 0 && itemNumList.Contains(a.ContainerItem));
-            //领料出库记录
-            //var pickbilllist = _NbrDetail.Select(a => a.Domain == input.factory_id.ToString() && a.Type == "SM" && a.IsActive && a.UpdateTime >= DateTime.Now.AddMonths(replenishmentDto.HistoryOutStockMonth * -1) && itemNumList.Contains(a.ItemNum));
-            var pickbilllist = _invTransHist.Select(a => a.Domain == input.factory_id.ToString() && a.TransType == "iss-wo" && a.IsActive && a.CreateTime >= DateTime.Now.AddMonths(-6) && itemNumList.Contains(a.ItemNum));
-            //总的移库次数
-            int totalCount = shipList.Count() + pickbilllist.Count();
-            //平均出库次数
-            decimal avgOutStock = totalCount / replenishmentDto.HistoryOutStockMonth;
-
-            //总出货金额
-            decimal? totalPrice = shipList.Sum(a => a.Price * a.QtyToShip);
-            //按照物料分组统计出货金额
-            var itemGroup = shipList.GroupBy(p => p.ContainerItem)
-                 .Select(p => new ASNBOLShipperDetail
-                 {
-                     Price = p.Sum(a => a.Price * a.QtyToShip) * 100 / totalPrice,
-                     ContainerItem = p.Key
-                 }).ToList().OrderByDescending(c => c.Price).ThenByDescending(c => c.ContainerItem);
-            var AIndex = (int)Math.Ceiling(itemGroup.Count() * 0.75);//A类:0-75%
-            var BIndex = (int)Math.Ceiling(itemGroup.Count() * 0.9) - AIndex;//A类:75%-90%
-            var CIndex = itemGroup.Count() - AIndex - BIndex;//A类:90%-100%
-            var AItem = itemGroup.Take(AIndex);
-            var BItem = itemGroup.Skip(AIndex).Take(BIndex);
-            var CItem = itemGroup.Skip(AIndex + BIndex).Take(CIndex);
-            replenishmentModels?.ForEach(replenishmentModel =>
-            {
-                if (AItem.Any(a => a.ContainerItem == replenishmentModel.number))
-                {
-                    replenishmentModel.abc = "A";//金额占比前75%的物料划为A类
-                }
-                else if (BItem.Any(a => a.ContainerItem == replenishmentModel.number))
-                {
-                    replenishmentModel.abc = "B";//金额占比前75%-90%的物料划为A类
-                }
-                else if (CItem.Any(a => a.ContainerItem == replenishmentModel.number))
-                {
-                    replenishmentModel.abc = "C";//金额占比后10%的物料划为A类
-                }
-                else
-                {
-                    replenishmentModel.abc = "B";//原材料默认为B
-                }
-                int itemMoveCount = shipList.Count(a => a.ContainerItem == replenishmentModel.number) + pickbilllist.Count(a => a.ItemNum == replenishmentModel.number);
-                if (itemMoveCount >= avgOutStock)
-                {
-                    replenishmentModel.fmr = "F";
-                }
-                else if (itemMoveCount >= avgOutStock / 2 && itemMoveCount < avgOutStock || itemMoveCount == 0)
-                {
-                    replenishmentModel.fmr = "M";//没有出库移库记录的默认为M
-                }
-                else if (itemMoveCount < avgOutStock / 2)
-                {
-                    replenishmentModel.fmr = "R";
-                }
-
-                if (replenishmentModel.abc == "A" && replenishmentModel.fmr == "R")
-                {
-                    replenishmentModel.service_level_pct = (decimal?)0.8;
-                }
-                if (replenishmentModel.abc != "C" && replenishmentModel.fmr != "R")
-                {
-                    replenishmentModel.service_level_pct = (decimal?)0.96;
-                }
-                if (replenishmentModel.abc == "C" || (replenishmentModel.abc == "B" && replenishmentModel.fmr == "R"))
-                {
-                    replenishmentModel.service_level_pct = (decimal?)0.9;
-                }
-            });
-        }
-
         /// <summary>
         /// 计算ABC分类和FMR分类
         /// </summary>

+ 10 - 10
MicroServices/Business/Business.Application/ResourceExamineManagement/CalcBomViewAppService.cs

@@ -233,7 +233,7 @@ namespace Business.ResourceExamineManagement
                 if (param.checkflag)
                 {
                     //工单检查无需检查在制
-                    mooccupylist = _morderAppService.CheckMorder(level1Dto.bom_number, level1Dto.lack_qty, plan_date.GetValueOrDefault(), sentrys, ic_item, bangid);
+                    mooccupylist = _morderAppService.CheckMorder(level1Dto.item_number, level1Dto.lack_qty, plan_date.GetValueOrDefault(), sentrys, ic_item, bangid);
                 }
 
                 if (mooccupylist.Any())
@@ -688,9 +688,9 @@ namespace Business.ResourceExamineManagement
                 {
                     var ic_item = icitemlist.Find(s => s.mysql_id == item.item_id);
                     List<mo_mes_mooccupy> mooccupylist = new List<mo_mes_mooccupy>();
-                    if (param.checkflag || param.checkPlan)
+                    if (param.checkflag)
                     {
-                        mooccupylist = _morderAppService.CheckMorder(item.bom_number, item.lack_qty, plan_date.GetValueOrDefault(), sentrys, ic_item, bangid);
+                        mooccupylist = _morderAppService.CheckMorder(item.item_number, item.lack_qty, plan_date.GetValueOrDefault(), sentrys, ic_item, bangid);
                     }  
                     decimal moo_qty = mooccupylist.Sum(s => s.moo_qty.GetValueOrDefault());
                     item.mo_qty = moo_qty;
@@ -1212,9 +1212,9 @@ namespace Business.ResourceExamineManagement
                         {
                             var ic_item = icitemlist.Find(s => s.mysql_id == sct.item_id);
                             List<mo_mes_mooccupy> mooccupylist = new List<mo_mes_mooccupy>();
-                            if (param.checkflag || param.checkPlan)
+                            if (param.checkflag)
                             {
-                                mooccupylist = _morderAppService.CheckMorder(sct.bom_number, sct.lack_qty, dateTime, sentrys, ic_item, bangid);
+                                mooccupylist = _morderAppService.CheckMorder(sct.item_number, sct.lack_qty, dateTime, sentrys, ic_item, bangid);
                             }
                             decimal moo_qty = mooccupylist.Sum(s => s.moo_qty.GetValueOrDefault());
                             sct.mo_qty = moo_qty;
@@ -1446,8 +1446,8 @@ namespace Business.ResourceExamineManagement
                 day = timesp.Days;
                 if (day > 0)
                 {
-                    supplist = supplist.Where(s => s.lead_time.GetValueOrDefault() < day).ToList();
-                    if (supplist.Any())
+                    List<mo_srm_purchase> newsupplist = supplist.Where(s => s.lead_time.GetValueOrDefault() < day).ToList();
+                    if (newsupplist.Any())
                     {
                         //TODO:走配额管理
                         List<mo_srm_pr_main> itemPrlist = quarter_srm_pr_mains.Where(s => s.icitem_id == returnlist.item_id).ToList();
@@ -1456,7 +1456,7 @@ namespace Business.ResourceExamineManagement
                             decimal qtyCount = itemPrlist.Sum(x => x.pr_aqty).GetValueOrDefault();
                             //按配额比例,计算使用哪个供应商。
                             List<PrPurchaseDto> PrPurchaseDtoList = new List<PrPurchaseDto>();
-                            supplist.ForEach(s => {
+                            newsupplist.ForEach(s => {
                                 PrPurchaseDto purDto = new PrPurchaseDto();
                                 purDto.pr_purchaseid = s.supplier_id;
                                 purDto.num = itemPrlist.Where(x => x.pr_purchaseid == s.supplier_id).Sum(c => c.pr_aqty.GetValueOrDefault());
@@ -1484,10 +1484,10 @@ namespace Business.ResourceExamineManagement
                                     dto1 = s;
                                 }
                             });
-                            supplier = supplist.Find(s => s.supplier_id == dto1.pr_purchaseid);
+                            supplier = newsupplist.Find(s => s.supplier_id == dto1.pr_purchaseid);
                         }
                         else {
-                            supplier = supplist.OrderBy(s => s.quota_priority).FirstOrDefault();//默认取配额优先级
+                            supplier = newsupplist.OrderBy(s => s.quota_priority).FirstOrDefault();//默认取配额优先级
                         }
                     }
                     else

+ 3 - 8
MicroServices/Business/Business.Application/ResourceExamineManagement/MorderAppService.cs

@@ -221,13 +221,8 @@ namespace Business.ResourceExamineManagement
         /// <param name="DeliverDate">交付日期</param>
         /// <param name="seorderentry_id">销售订单子表ID</param>
         /// <returns></returns>
-        public List<mo_mes_mooccupy> CheckMorder(string bomNumber, decimal Quantity, DateTime DeliverDate, crm_seorderentry seorderentry, mo_ic_item ic_Item, long bang_id)
+        public List<mo_mes_mooccupy> CheckMorder(string itemNumber, decimal Quantity, DateTime DeliverDate, crm_seorderentry seorderentry, mo_ic_item ic_Item, long bang_id)
         {
-            if (string.IsNullOrEmpty(bomNumber))
-            {
-                //TODO:入参异常;
-                return null;
-            }
             //获取销售订单信息
             //var seorder = await _crm_seorder.FindAsync(x => x.Id == OrderId);
             //var seorderentry = await _mysql_crm_seorderentry.FindAsync(x => x.Id == seorderentry_id);
@@ -253,7 +248,7 @@ namespace Business.ResourceExamineManagement
             var moentrys = mo_Mes_Moentry.Where(s => s.soentry_id == seorderentry.Id);
             //找到当前订单行生成的主工单
             var toMid = moentrys.Select(s => s.moentry_moid).ToList();
-            var morderDataList = mo_Mes_Morders.Where(x => x.bom_number == bomNumber && x.morder_type == MorderEnum.JhMorder && totime < x.moentry_sys_etime.GetValueOrDefault() && x.moentry_sys_etime.GetValueOrDefault() < DeliverDate &&
+            var morderDataList = mo_Mes_Morders.Where(x => x.product_code == itemNumber && x.morder_type == MorderEnum.JhMorder && totime < x.moentry_sys_etime.GetValueOrDefault() && x.moentry_sys_etime.GetValueOrDefault() < DeliverDate &&
             (x.morder_production_number - x.inventory_number - mes_mooccupyList.Where(p => p.moo_moid.GetValueOrDefault() == x.mysql_id)?.Sum(m => m.moo_qty)) > Quantity)
              .OrderByDescending(x => x.planner_end_date).ToList();
 
@@ -261,7 +256,7 @@ namespace Business.ResourceExamineManagement
             //当数量或日期不满足的时候,寻找最早日期的工单
             if (morderDataList.Count == 0)
             {
-                morderDataList = mo_Mes_Morders.Where(x => x.bom_number == bomNumber && (x.morder_type == MorderEnum.JhMorder || toMid.Contains(x.mysql_id)) && totime < x.moentry_sys_etime.GetValueOrDefault() && x.moentry_sys_etime.GetValueOrDefault() < DeliverDate).OrderByDescending(x => x.planner_end_date).ToList();
+                morderDataList = mo_Mes_Morders.Where(x => x.product_code == itemNumber && (x.morder_type == MorderEnum.JhMorder || toMid.Contains(x.mysql_id)) && totime < x.moentry_sys_etime.GetValueOrDefault() && x.moentry_sys_etime.GetValueOrDefault() < DeliverDate).OrderByDescending(x => x.planner_end_date).ToList();
             }
             var QuantityNumber = 0.00m;
             //存在此数据满足当前BOM交付找到最早日期工单,则返回无需后续继续检查。

+ 1 - 1
MicroServices/Business/Business.Domain/StructuredDB/MES/IC/ic_item.cs

@@ -110,7 +110,7 @@ namespace Business.Domain
         /// </summary>
         [StringLength(200)]
         [Comment("来源")]
-        public string source { get; set; }
+        public string? source { get; set; }
         /// <summary>
         /// 是否为设备
         /// </summary>

+ 17 - 37
MicroServices/Business/Business.Domain/StructuredDB/Replenishment/ReplenishmentServiceLevel.cs

@@ -8,7 +8,7 @@ namespace Business.Domain
     ///补货模型物料Z服务水平
     /// </summary>
     [Comment("补货模型物料abcfmr")]
-    [Index(nameof(number), nameof(tenant_id), nameof(fversion),nameof(isstandalone), nameof(factory_id), IsUnique = true)]
+    [Index(nameof(number), nameof(tenant_id), nameof(fversion), nameof(factory_id), IsUnique = true)]
     public class ReplenishmentServiceLevel : BaseEntity
     {
         /// <summary>
@@ -46,54 +46,40 @@ namespace Business.Domain
 
 
         /// <summary>
-        /// 存货金额
+        /// 总移库次数
         /// </summary>
         [Precision(20, 8)]
-        [Comment("存货金额")]
-        public decimal? inventoryamount { get; set; }
+        [Comment("总移库次数")]
+        public decimal? totalCount { get; set; }
 
         /// <summary>
-        /// 出库金额
+        /// 月均出库次数
         /// </summary>
         [Precision(20, 8)]
-        [Comment("出库金额")]
-        public decimal? outstockamount { get; set; }
+        [Comment("月均出库次数")]
+        public decimal? avgOutStock { get; set; }
 
         /// <summary>
-        /// 金额占比
+        /// 总出货金额
         /// </summary>
         [Precision(20, 8)]
-        [Comment("金额占比")]
-        public decimal? amountpercent { get; set; }
-
-
-        /// <summary>
-        /// ABC分类
-        /// </summary>
-        [StringLength(8)]
-        [Comment("ABC分类")]
-        public string? abc { get; set; }
+        [Comment("总出货金额")]
+        public decimal? totalPrice { get; set; }
 
         /// <summary>
-        /// 出库次数
+        /// 物料出货金额
         /// </summary>
         [Precision(20, 8)]
-        [Comment("出库次数")]
-        public decimal? outstockcount { get; set; }
+        [Comment("物料出货金额")]
+        public decimal? Price { get; set; }
 
-        /// <summary>
-        /// 移动次数
-        /// </summary>
-        [Precision(20, 8)]
-        [Comment("移动次数/月")]
-        public decimal? movecount { get; set; }
 
         /// <summary>
-        /// 次数占比
+        /// ABC分类
         /// </summary>
-        [Precision(20, 8)]
-        [Comment("次数占比")]
-        public decimal? moveperent { get; set; }
+        [StringLength(8)]
+        [Comment("ABC分类")]
+        public string? abc { get; set; }
 
         /// <summary>
         /// FMR分类
@@ -108,11 +94,5 @@ namespace Business.Domain
         [Precision(20, 8)]
         [Comment("Z服务水平参数")]
         public decimal? service_level_pct { get; set; }
-
-        /// <summary>
-        /// 是否独立计算,成品跟产品计算,原材料跟原材料计算
-        /// </summary>
-        [Comment("是否独立计算,成品跟产品计算,原材料跟原材料计算")]
-        public bool isstandalone { get; set; }
     }
 }

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

@@ -475,3 +475,157 @@
 {"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-18T02:07:55.3518218+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
 {"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-18T02:07:55.3563462+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
 {"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-18T02:07:55.3591345+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-18T09:58:44.4087974+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-18T09:58:44.4725719+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-18T09:58:44.4772566+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-18T09:58:44.4795553+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:03:08.1554897+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:03:08.215004+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:03:08.2213374+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:03:08.224291+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:09:12.7934062+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:09:12.8581207+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:09:12.8639069+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:09:12.866926+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:14:37.9836694+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:14:38.0397066+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:14:38.0442687+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:14:38.0458666+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:21:34.3228316+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:21:34.3848771+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:21:34.3886124+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:21:34.3908461+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:23:03.783899+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:23:03.8315833+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:23:03.8366509+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:23:03.8385255+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:36:23.5505536+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:36:23.6104304+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:36:23.6176396+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:36:23.6200956+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:40:35.2374783+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:40:35.3167936+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:40:35.3235084+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-18T10:40:35.3267063+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-18T13:59:05.971851+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-18T13:59:06.0350969+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-18T13:59:06.039165+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-18T13:59:06.041862+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-18T14:03:10.6260042+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-18T14:03:11.8027582+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-18T14:03:11.807734+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-18T14:03:11.81008+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-18T14:05:31.073271+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-18T14:05:31.1495401+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-18T14:05:31.1548495+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-18T14:05:31.1576656+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-18T14:10:59.37214+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-18T14:10:59.4166017+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-18T14:10:59.4201966+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-18T14:10:59.4221563+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-18T15:28:00.4439288+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-18T15:28:00.510947+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-18T15:28:00.5151637+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-18T15:28:00.5177111+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-18T15:35:27.9412241+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-18T15:35:28.0004812+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-18T15:35:28.0068547+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-18T15:35:28.0092081+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-19T11:05:34.0122208+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-19T11:05:34.0759322+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-19T11:05:34.0811512+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-19T11:05:34.0837112+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-19T11:19:10.6617642+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-19T11:19:10.7788949+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-19T11:19:10.7847186+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-19T11:19:10.7877543+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-19T11:23:01.5290948+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-19T11:23:01.595844+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-19T11:23:01.6152263+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-19T11:23:01.6198733+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-19T11:27:12.6689172+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-19T11:27:12.7336389+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-19T11:27:12.7383581+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-19T11:27:12.7406373+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-19T11:33:53.3483564+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-19T11:33:53.4357439+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-19T11:33:53.4532321+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-19T11:33:53.4570333+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-19T14:35:14.9954048+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-19T14:35:15.0685498+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-19T14:35:15.0713409+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-19T14:35:15.0795412+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-19T14:43:05.4402449+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-19T14:43:05.5102173+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-19T14:43:05.5146846+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-19T14:43:05.5170088+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-19T14:55:45.7960349+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-19T14:55:45.8400626+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-19T14:55:45.8435483+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-19T14:55:45.8464208+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-19T15:00:53.541402+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-19T15:00:53.6146467+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-19T15:00:53.620057+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-19T15:00:53.6227143+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-19T15:23:17.2393114+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-19T15:23:17.3208361+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-19T15:23:17.325202+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-19T15:23:17.3277163+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-19T15:30:49.2399693+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-19T15:30:49.3133122+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-19T15:30:49.3201116+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-19T15:30:49.322717+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-19T15:32:05.362692+08:00","EndDate":"2023-09-19T15:32:05.6323866+08:00","Msg":"同步完成","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-19T16:41:26.2720275+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-19T16:41:26.3463642+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-19T16:41:26.3531615+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-19T16:41:26.3547594+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-19T16:52:29.1429574+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-19T16:52:29.188352+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-19T16:52:29.1918876+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-19T16:52:29.1936167+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-19T16:57:18.6478984+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-19T16:57:18.7117199+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-19T16:57:18.7186804+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-19T16:57:18.7225116+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-19T17:18:30.0655263+08:00","EndDate":"2023-09-19T17:18:40.8673804+08:00","Msg":"任务执行成功","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-19T17:27:41.3677551+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-19T17:27:41.4410071+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-19T17:27:41.4459777+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-19T17:27:41.4484264+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-19T18:37:03.6753209+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-19T18:37:03.756359+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-19T18:37:03.7621565+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-19T18:37:03.7644799+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-19T18:43:33.9477416+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-19T18:43:34.00612+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-19T18:43:34.0311246+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-19T18:43:34.0348705+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-19T18:45:34.3832959+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-19T18:45:34.4469237+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-19T18:45:34.470516+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-19T18:45:34.4728894+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-19T18:58:35.2159389+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-19T18:58:35.2852089+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-19T18:58:35.2917929+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-19T18:58:35.2946856+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-19T19:12:34.7409136+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-19T19:12:34.8401418+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-19T19:12:34.8470413+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-19T19:12:34.8488132+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-19T19:39:45.2049592+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-19T19:39:45.2909772+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-19T19:39:45.2935769+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-19T19:39:45.3022797+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-19T20:22:22.3238788+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-19T20:22:22.3803107+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-19T20:22:22.3840843+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-19T20:22:22.3858909+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-19T20:29:14.2711677+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-19T20:29:14.3309+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-19T20:29:14.3360792+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-19T20:29:14.338736+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2023-09-19T20:36:55.677854+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2023-09-19T20:36:55.7519437+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2023-09-19T20:36:55.757571+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2023-09-19T20:36:55.7597287+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}