浏览代码

去掉sap库存表

Pengxy 10 月之前
父节点
当前提交
687e22db9d

+ 33 - 33
MicroServices/Business/Business.Application/ReplenishmentManagement/ReplenishmentAppService.cs

@@ -540,7 +540,7 @@ namespace Business.Replenishment
             //var DMSItemList = _DMS_IN_ITEMMAPPING.Select(a => sapItemList.Contains(a.CfnERPCode));
             //var gkhwStock = _DMS_IN_LOCDETAIL.Select(a => (a.DealerCode == "RQ000005" || a.DealerCode == "RQ000002"));
 
-            var sapInvList = _SAPInv.Select(a => a.WERKS == input.factory_id.ToString() && sapItemList.Contains(a.MATNR) && (a.SOBKZ.ToUpper() == "O"));
+            //var sapInvList = _SAPInv.Select(a => a.WERKS == input.factory_id.ToString() && sapItemList.Contains(a.MATNR) && (a.SOBKZ.ToUpper() == "O"));
             // 获取某年某月的起始日期和结束日期
             DateTime start = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
             DateTime end = start.AddMonths(1).AddDays(-1);
@@ -632,10 +632,10 @@ namespace Business.Replenishment
                     itemInProduct = dictInProduction[yearDemands[i].SAPItemNumber];
                 }
                 decimal? InSterilizationQty = 0.00m;
-                if (sapInvList.Count > 0 && sapInvList.Any(a => a.MATNR == yearDemands[i].SAPItemNumber))
-                {
-                    InSterilizationQty = sapInvList.Where(a => a.MATNR == yearDemands[i].SAPItemNumber && a.SOBKZ.ToUpper() == "O").Sum(x => Convert.ToDecimal(x.LABST) + Convert.ToDecimal(x.INSME) + Convert.ToDecimal(x.SPEME));
-                }
+                //if (sapInvList.Count > 0 && sapInvList.Any(a => a.MATNR == yearDemands[i].SAPItemNumber))
+                //{
+                //    InSterilizationQty = sapInvList.Where(a => a.MATNR == yearDemands[i].SAPItemNumber && a.SOBKZ.ToUpper() == "O").Sum(x => Convert.ToDecimal(x.LABST) + Convert.ToDecimal(x.INSME) + Convert.ToDecimal(x.SPEME));
+                //}
                 //+ gkStock + hwStock
                 var locationSum = (locationList.Count == 0 ? 0 : locationList.Sum(x => x.AvailStatusQty.GetValueOrDefault() + x.Assay.GetValueOrDefault())) + (ship.Count == 0 ? 0 : ship.Sum(x => x.QtyToShip)) + itemInProduct + InSterilizationQty;
                 //前面N个月的生产数量
@@ -788,7 +788,7 @@ namespace Business.Replenishment
             shipList.OrderBy(a => a.PlanMonth);
             var shipItemList = shipList.Select(a => a.SAPItemNumber).Distinct().ToList();
             var ropPlan = _replenishmentROPWeekPlan.GetListAsync(x => shipItemList.Contains(x.number) && planMons.Contains(x.planmonth) && !x.IsDeleted && x.factory_id == input.factory_id).Result;
-            var sapInvList = _SAPInv.Select(a => a.WERKS == input.factory_id.ToString() && shipItemList.Contains(a.MATNR) && (a.SOBKZ.ToUpper() == "O"));
+            //var sapInvList = _SAPInv.Select(a => a.WERKS == input.factory_id.ToString() && shipItemList.Contains(a.MATNR) && (a.SOBKZ.ToUpper() == "O"));
             foreach (var item in shipList)
             {
                 var ropItem = ropPlan.Find(x => x.number == item.SAPItemNumber);
@@ -886,10 +886,10 @@ namespace Business.Replenishment
                         plan.Inventory2 = 0;
                     }
                     decimal InSterilizationQty = 0.00m;
-                    if (sapInvList.Count > 0 && sapInvList.Any(a => a.MATNR == item.SAPItemNumber && a.SOBKZ.ToUpper() == "O"))
-                    {
-                        InSterilizationQty = sapInvList.Where(a => a.MATNR == item.SAPItemNumber && a.SOBKZ.ToUpper() == "O").Sum(x => Convert.ToDecimal(x.LABST) + Convert.ToDecimal(x.INSME) + Convert.ToDecimal(x.SPEME));
-                    }
+                    //if (sapInvList.Count > 0 && sapInvList.Any(a => a.MATNR == item.SAPItemNumber && a.SOBKZ.ToUpper() == "O"))
+                    //{
+                    //    InSterilizationQty = sapInvList.Where(a => a.MATNR == item.SAPItemNumber && a.SOBKZ.ToUpper() == "O").Sum(x => Convert.ToDecimal(x.LABST) + Convert.ToDecimal(x.INSME) + Convert.ToDecimal(x.SPEME));
+                    //}
                     plan.DuringSterilization = InSterilizationQty;
                     plan.InProduction = InProdcutQty.Find(a => a.ItemNumber == item.SAPItemNumber).Qty;
                     if (pre3MonthPlan.Where(a => a.ItemNumber == item.SAPItemNumber).Count() > 0)
@@ -5043,7 +5043,7 @@ namespace Business.Replenishment
         {
             List<EOPDto> itemQty = new List<EOPDto>();
             var locations = _invMaster.Select(p => p.Domain == input.factory_id.ToString() && itemNumbers.Contains(p.ItemNum) && p.IsActive);
-            var sapInvList = _SAPInv.Select(a => a.WERKS == input.factory_id.ToString() && itemNumbers.Contains(a.MATNR) && (a.SOBKZ.ToUpper() == "O"));
+            //var sapInvList = _SAPInv.Select(a => a.WERKS == input.factory_id.ToString() && itemNumbers.Contains(a.MATNR) && (a.SOBKZ.ToUpper() == "O"));
             var stockOccupyList = _mysql_ic_item_stockoccupy.GetListAsync(a => itemNumbers.Contains(a.icitem_number) && a.factory_id == input.factory_id && !a.IsDeleted).Result;
             itemNumbers.ForEach(a =>
             {
@@ -5055,10 +5055,10 @@ namespace Business.Replenishment
                     stockqty = locations.Where(s => s.ItemNum == a).Sum(x => x.AvailStatusQty.GetValueOrDefault());
                 }
                 decimal InSterilizationQty = 0;
-                if (sapInvList.Count > 0 && sapInvList.Any(s => s.MATNR == a))
-                {
-                    InSterilizationQty = sapInvList.Where(s => s.MATNR == a && s.SOBKZ.ToUpper() == "O").Sum(x => Convert.ToDecimal(x.LABST) + Convert.ToDecimal(x.INSME) + Convert.ToDecimal(x.SPEME));
-                }
+                //if (sapInvList.Count > 0 && sapInvList.Any(s => s.MATNR == a))
+                //{
+                //    InSterilizationQty = sapInvList.Where(s => s.MATNR == a && s.SOBKZ.ToUpper() == "O").Sum(x => Convert.ToDecimal(x.LABST) + Convert.ToDecimal(x.INSME) + Convert.ToDecimal(x.SPEME));
+                //}
                 stockqty += InSterilizationQty;
 
                 var occupyQty = stockOccupyList.Where(s => s.icitem_number == a).Sum(s => s.quantity);
@@ -6197,7 +6197,7 @@ namespace Business.Replenishment
                     locationList = locationRange.Val.SplitToArray(",").ToList();
                 }
                 var locStock = _invMaster.Select(a => numbers.Contains(a.ItemNum) && a.IsActive && a.Domain == factoryId.ToString() && locationList.Contains(a.Location));
-                var sapInvList = _SAPInv.Select(a => numbers.Contains(a.MATNR) && a.WERKS == factoryId.ToString() && (a.SOBKZ.ToUpper() == "O" || locationList.Contains(a.LGORT)));
+                //var sapInvList = _SAPInv.Select(a => numbers.Contains(a.MATNR) && a.WERKS == factoryId.ToString() && (a.SOBKZ.ToUpper() == "O" || locationList.Contains(a.LGORT)));
 
                 //设置当前计算bangid
                 icitemStokc.ForEach(item =>
@@ -6208,16 +6208,16 @@ namespace Business.Replenishment
                     foreach (var lct in locationList)
                     {
                         var lctQty = locStock.Where(s => s.ItemNum == item.icitem_number && s.Location == lct).Sum(p => p.AvailStatusQty.GetValueOrDefault() + p.Assay.GetValueOrDefault());
-                        if (lctQty == 0)
-                        {
-                            lctQty = sapInvList.Where(x => x.MATNR == item.icitem_number && x.LGORT == lct).Sum(p => p.LABST + p.INSME);
-                        }
+                        //if (lctQty == 0)
+                        //{
+                        //    lctQty = sapInvList.Where(x => x.MATNR == item.icitem_number && x.LGORT == lct).Sum(p => p.LABST + p.INSME);
+                        //}
                         item.sqty += lctQty;
                     }
-                    if (!string.IsNullOrEmpty(analogCalcVersion))
-                    {
-                        item.sqty += sapInvList.Where(x => x.MATNR == item.icitem_number && x.SOBKZ.ToUpper() == "O").Sum(p => p.LABST + p.INSME);
-                    }
+                    //if (!string.IsNullOrEmpty(analogCalcVersion))
+                    //{
+                    //    item.sqty += sapInvList.Where(x => x.MATNR == item.icitem_number && x.SOBKZ.ToUpper() == "O").Sum(p => p.LABST + p.INSME);
+                    //}
                 });
                 var moIcitemStokc = ObjectMapper.Map<List<ic_item_stock>, List<mo_ic_item_stock>>(icitemStokc);
                 moIcitemStokc.ForEach(item => { item.GenerateNewId(help.NextId()); item.create_time = DateTime.Now; });
@@ -7304,7 +7304,7 @@ namespace Business.Replenishment
                 }
             }
             var locStock = _invMaster.Select(a => itemChildList.Contains(a.ItemNum) && a.IsActive && a.Domain == param.factoryId.ToString() && locationList.Contains(a.Location));
-            var sapInvList = _SAPInv.Select(a => a.WERKS == param.factoryId.ToString() && itemChildList.Contains(a.MATNR) && (a.SOBKZ.ToUpper() == "O" || locationList.Contains(a.LGORT)));
+            //var sapInvList = _SAPInv.Select(a => a.WERKS == param.factoryId.ToString() && itemChildList.Contains(a.MATNR) && (a.SOBKZ.ToUpper() == "O" || locationList.Contains(a.LGORT)));
 
             //根据WMS物料,取出DOP物料数据
             var items = _mysql_ic_item.GetListAsync(a => itemChildList.Contains(a.number) && a.factory_id == param.factoryId).Result;
@@ -7340,16 +7340,16 @@ namespace Business.Replenishment
                     foreach (var lct in locationList)
                     {
                         var lctQty = locStock.Where(s => s.ItemNum == item.icitem_number && s.Location == lct).Sum(p => p.AvailStatusQty.GetValueOrDefault() + p.Assay.GetValueOrDefault());
-                        if (lctQty == 0)
-                        {
-                            lctQty = sapInvList.Where(x => x.MATNR == item.icitem_number && x.LGORT == lct).Sum(p => p.LABST + p.INSME);
-                        }
+                        //if (lctQty == 0)
+                        //{
+                        //    lctQty = sapInvList.Where(x => x.MATNR == item.icitem_number && x.LGORT == lct).Sum(p => p.LABST + p.INSME);
+                        //}
                         item.sqty += lctQty;
                     }
-                    if (!string.IsNullOrEmpty(analogCalcVersion))
-                    {
-                        item.sqty += sapInvList.Where(x => x.MATNR == item.icitem_number && x.SOBKZ.ToUpper() == "O").Sum(p => p.LABST + p.INSME);
-                    }
+                    //if (!string.IsNullOrEmpty(analogCalcVersion))
+                    //{
+                    //    item.sqty += sapInvList.Where(x => x.MATNR == item.icitem_number && x.SOBKZ.ToUpper() == "O").Sum(p => p.LABST + p.INSME);
+                    //}
                 }
             }
             if (needAddList.Count > 0)

+ 238 - 410
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -824,6 +824,7 @@ namespace Business.ResourceExamineManagement
                     dtl.need_time = item.plan_date;
                     dtl.bangid = bangid;
                     dtl.prd_code = item.item_number;
+
                     //获取当前物料bom数据
                     var childBom = boms.Where(p => p.item_number == item.item_number).FirstOrDefault();
                     dtl.bom_number = childBom.bom_number;
@@ -2181,7 +2182,7 @@ namespace Business.ResourceExamineManagement
                 }
                 var locStock = _invMaster.Select(a => numbers.Contains(a.ItemNum) && a.IsActive && a.Domain == factoryId.ToString() && locationList.Contains(a.Location));
                 //var sapInvList = _SAPInv.Select(a => a.WERKS == factoryId.ToString() && numbers.Contains(a.MATNR) && (a.SOBKZ.ToUpper() == "O" || locationList.Contains(a.LGORT)));
-                var sapInvList = _SAPInv.Select(a => a.WERKS == factoryId.ToString() && numbers.Contains(a.MATNR) && locationList.Contains(a.LGORT));
+                //var sapInvList = _SAPInv.Select(a => a.WERKS == factoryId.ToString() && numbers.Contains(a.MATNR) && locationList.Contains(a.LGORT));
                 //设置当前计算bangid
                 icitemStokc.ForEach(item => {
                     item.bang_id = bangid;
@@ -2190,10 +2191,10 @@ namespace Business.ResourceExamineManagement
                     foreach (var lct in locationList)
                     {
                         var lctQty = locStock.Where(s => s.ItemNum == item.icitem_number && s.Location == lct).Sum(p => p.AvailStatusQty.GetValueOrDefault() + p.Assay.GetValueOrDefault());
-                        if (lctQty == 0)
-                        {
-                            lctQty = sapInvList.Where(x => x.MATNR == item.icitem_number && x.LGORT == lct).Sum(p => p.LABST + p.INSME);
-                        }
+                        //if (lctQty == 0)
+                        //{
+                        //    lctQty = sapInvList.Where(x => x.MATNR == item.icitem_number && x.LGORT == lct).Sum(p => p.LABST + p.INSME);
+                        //}
                         item.sqty += lctQty;
                     }
                     /*if (param.checkPlan)
@@ -4455,397 +4456,228 @@ namespace Business.ResourceExamineManagement
         }
 
         #region 齐套数量测试
-        ///// <summary>
-        ///// 工单物料齐套检查
-        ///// </summary>
-        ///// <param name="input"></param>
-        //public async Task<PschedDto> OrderDetailKittingCheck(string domain, string userAccount, List<mes_morder> mo_Mes_Morders = null)
-        //{
-        //    // 调用优先级计算算法
-        //    //var workOrds = _replenishmentAppService.CalcPriority(mo_Mes_Morders.Select(p => p.morder_no).ToList(), param.factoryId.ToString());
-        //    List<string> tsWork = new List<string> { "test", "tcn", "rw" };
-        //    var workOrds = _workOrdMaster.Select(x => x.Domain == domain && x.IsActive && (string.IsNullOrEmpty(x.Typed) == true || tsWork.Contains(x.Typed)) && (x.Status.ToLower() == "p" || x.Status.ToLower() == "r")).OrderBy(c => c.Priority).ToList();
-        //    if (mo_Mes_Morders == null)
-        //    {
-        //        mo_Mes_Morders = _mysql_mes_morder.GetListAsync(x => domain == x.factory_id.ToString() && workOrds.Select(s => s.WorkOrd).Contains(x.morder_no) && (x.morder_state == MorderEnum.Initial_state || x.morder_state == MorderEnum.Xd_state) && !x.IsDeleted).Result;
-        //    }
-        //    var workOrdRoutings = _workOrdRouting.Select(a => mo_Mes_Morders.Select(p => p.morder_no).Contains(a.WorkOrd) && a.Domain == param.factoryId.ToString() && a.IsActive).ToList();
-        //    //清理工单物料明细
-        //    var delWorkOrddetails = _workOrdDetail.Select(x => workOrds.Select(c => c.RecID).Contains((int)x.WorkOrdMasterRecID) && x.Domain == param.factoryId.ToString());
-        //    //资源检查结果
-        //    PschedDto rtn = new PschedDto();
-        //    //资源检查明细list
-        //    List<ExamineResult> examines = new List<ExamineResult>();
-        //    if (!mo_Mes_Morders.Any())
-        //    {
-        //        return rtn;
-        //    }
-        //    List<mes_morder> db_mes_morder = new List<mes_morder>();
-        //    db_mes_morder = mo_Mes_Morders;
-        //    //资源检查入参全局变量赋值
-        //    param.company_id = mo_Mes_Morders[0].company_id;
-        //    param.factoryId = mo_Mes_Morders[0].factory_id.GetValueOrDefault();
-        //    param.checkflag = false;
-        //    param.checkPlan = false;
-        //    param.writeNum = true;
-        //    //生成当前计算bangid
-        //    long bangid = help.NextId();
-
-        //    var morderIdList = mo_Mes_Morders.Select(s => s.Id).ToList();
-
-        //    List<mes_moentry> mo_Mes_Moentries = _mysql_mes_moentry.GetListAsync(x => morderIdList.Contains(x.moentry_moid.Value)).Result;
-
-        //    //获取订单行数据
-        //    List<crm_seorderentry> sentrys = _mysql_crm_seorderentry.GetListAsync(p => p.company_id == param.company_id && p.factory_id == param.factoryId && !p.IsDeleted && mo_Mes_Moentries.Select(x => x.soentry_id).Contains(p.Id)).Result;
-
-        //    //删除同步Mysql后旧数据
-        //    await DeleteMySqlOldData(sentrys);
-        //    //物料信息
-        //    List<mo_ic_item> icitemlist = new List<mo_ic_item>();
-
-        //    //物料库存表
-        //    List<mo_ic_item_stock> stocklist = new List<mo_ic_item_stock>();
-        //    //物料占用记录
-        //    List<mo_ic_item_stockoccupy> sklist = new List<mo_ic_item_stockoccupy>();
-
-        //    //sorder=null  是因为齐套检查不需要生成工单、采购、委外等信息,所以不需要关联的工单信息传递进去。
-        //    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.mysql_id).Any())
-        //    //    {
-        //    //        autoCreates.Add(p);
-        //    //    }
-        //    //});
-        //    //if (autoCreates.Any())
-        //    //{
-        //    //    AutoCreateBomBill(param.company_id.ToString(), autoCreates);
-        //    //    pretreatments = _mysql_b_bom_pretreatment.GetListAsync(s => boms.Select(c => c.mysql_id).ToList().Contains(s.sourceid)).Result;
-        //    //}
-        //    //增加特殊工单的预处理结果,因为特殊工单是自定义物料清单
-        //    //List<string> tsWork = new List<string> { "试制工单", "返工工单" };
-        //    var specialWork = mo_Mes_Morders.Where(x => tsWork.Contains(x.morder_type)).ToList();
-        //    pretreatments.AddRange(_mysql_b_bom_pretreatment.GetListAsync(s => specialWork.Select(c => c.Id).ToList().Contains(s.sourceid)).Result);
-
-        //    await AsyncItemStockFromWMS(pretreatments);
-        //    //数据库快照-同步mysql库数据到mongoDB中
-        //    await DbSnapShot(param.company_id, param.factoryId, bangid, pretreatments);
-
-        //    DetailDataInitialization(boms, bangid, icitemlist, stocklist, pretreatments, sklist);
-
-        //    List<mes_morder> priorityMorderList = new List<mes_morder>();
-        //    foreach (var work in workOrds)
-        //    {
-        //        var mo = mo_Mes_Morders.Find(s => s.morder_no == work.WorkOrd);
-
-        //            var routings = workOrdRoutings.Where(r => r.WorkOrd == work.WorkOrd).ToList();
-        //            if (routings.Any() && mo != null)
-        //            {
-        //                //最大生产数量
-        //                var QtyComplete = routings.Max(r => r.QtyComplete);
-        //                //修改订单需求数为在制数量
-        //                mo.need_number = mo.need_number - QtyComplete;
-        //                work.OpQtyCompleted = QtyComplete;
-        //                work.InProdcutQty = mo.need_number;
-        //            }
-
-        //        if (mo != null)
-        //        {
-        //            if (mo.need_number > 0)
-        //            {
-        //                priorityMorderList.Add(mo);
-        //            }
-        //        }
-        //    }
-        //    if (!priorityMorderList.Any())
-        //    {
-        //        priorityMorderList = mo_Mes_Morders;
-        //    }
-        //    _morderAppService.param = param;
-        //    _purchaseOrderAppService.param = param;
-        //    _CalcBomViewAppService.param = param;
-
-        //    List<string> GenerateMoList = new List<string>();
-        //    _CalcBomViewAppService.GenerateMoList = GenerateMoList;
-        //    _CalcBomViewAppService.newStockOccList = new List<mo_ic_item_stockoccupy>();
-        //    sklist = sklist.Where(s => !priorityMorderList.Select(p => p.morder_no).Contains(s.morder_mo)).ToList();
-        //    foreach (var item in priorityMorderList)
-        //    {
-        //        var moentry = mo_Mes_Moentries.Find(s => s.moentry_moid == item.Id);
-        //        if (moentry == null)
-        //        {
-        //            continue;
-        //        }
-        //        var sentry = sentrys.Find(s => s.Id == moentry.soentry_id);
-
-        //        //工单资源检查信息
-        //        ExamineResult dtl = new ExamineResult();
-        //        dtl.morder_id = item.Id;
-        //        dtl.morder_no = item.morder_no;
-        //        dtl.bangid = bangid;
-        //        dtl.order_statr_time = item.start_time;
-        //        dtl.bom_number = item.bom_number;
-        //        dtl.need_qty = item.need_number.GetValueOrDefault();
-        //        dtl.prd_code = item.product_code;
-
-        //        //获取当前物料bom数据
-        //        List<b_bom_pretreatment> itemPrelist = new List<b_bom_pretreatment>();
-        //        //通过工单ID读取,考虑特殊工单的预处理
-        //        itemPrelist = pretreatments.Where(s => s.sourceid == item.Id).ToList();
-        //        if (!itemPrelist.Any())
-        //        {
-        //            var childBom = boms.Where(p => p.bom_number == item.bom_number).FirstOrDefault();
-        //            if (childBom != null)
-        //            {
-        //                itemPrelist = pretreatments.Where(s => s.sourceid == childBom.mysql_id).ToList();
-        //            }
-        //            else
-        //            {
-        //                continue;
-        //            }
-        //        }
-        //        if (!itemPrelist.Any())
-        //        {
-        //            continue;
-        //        }
-
-        //        var getBomList = ObjectMapper.Map<List<b_bom_pretreatment>, List<BomChildExamineDto>>(itemPrelist);
-
-        //        if (sentry != null)
-        //        {
-        //            dtl.sentry_id = sentry.Id;
-        //            getBomList.ForEach(s => s.sentry_id = item.Id);
-        //        }
-        //        if (getBomList.Count == 1)
-        //        {
-        //            var isy = 1;
-        //        }
-
-        //        _CalcBomViewAppService.morder_type = item.morder_type;
-        //        _CalcBomViewAppService.mes_morder = item;
-        //        //库存初始化
-        //        _CalcBomViewAppService.BomStock(getBomList, stocklist, bangid);
-
-        //        //计算
-        //        _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);
-        //        //物料齐套时间
-        //        dtl.kitting_times = getBomList.Where(p => p.is_use && p.kitting_time != null).OrderByDescending(m => m.kitting_time).First().kitting_time.GetValueOrDefault();
-        //        //kitting_time=null为自制组件跳过数据未进行计算,kitting_state=0的数据未参与计算
-        //        var qllist = getBomList.Where(x => x.use_qty == 0 && x.kitting_time != null && x.needCount != 0 && x.erp_cls != 4 && x.level != 1 && x.kitting_state != 0).ToList();
-        //        var work = workOrds.Find(x => x.WorkOrd == item.morder_no);
-        //        if (qllist.Any())
-        //        {
-        //            work.LocationStock = 0;
-        //        }
-        //        else
-        //        {
-        //            qllist = getBomList.Where(x => x.use_qty > 0 && x.kitting_time != null && x.needCount != 0 && x.erp_cls != 4 && x.level == 2 && x.kitting_state == 1).ToList();
-        //            if (qllist.Any())
-        //            {
-        //                //按比例计算成品齐套个数
-        //                work.LocationStock = qllist.Min(b => b.use_qty / b.qty) > work.QtyOrded ? work.QtyOrded : qllist.Min(b => b.use_qty / b.qty);
-        //            }
-        //            else
-        //            {
-        //                work.LocationStock = 0;
-        //            }
-        //        }
-        //        //替代关系展开list
-        //        dtl.BomChildExamineList = getBomList;
-        //        //添加订单行开工信息
-        //        examines.Add(dtl);
-        //    }
-        //    rtn.examines = examines;
-        //    if (writeNum)
-        //    {
-        //        //回写工单需求数
-        //        foreach (var item in mo_Mes_Morders)
-        //        {
-        //            var curInfo = db_mes_morder.FirstOrDefault(p => p.morder_no == item.morder_no);
-        //            if (curInfo != null)
-        //            {
-        //                item.need_number = curInfo.need_number;
-        //            }
-        //        }
-        //        _businessDbContext.BulkUpdate(workOrds);
-        //    }
-        //    List<WorkOrdDetail> mainWorkOrdDetails = new List<WorkOrdDetail>();
-        //    if (!writeNum)
-        //    {
-        //        if (moentryList == null)
-        //        {
-        //            //成品虚拟件对应关系
-        //            var productOpList = _productStructureOp.Select(x => priorityMorderList.Select(c => c.product_code).Contains(x.ProductItem) && x.Domain == param.factoryId.ToString());
-        //            List<ItemMaster> itemMasterList = _itemMaster.Select(p => p.Domain == param.factoryId.ToString()).ToList();
-        //            foreach (var workord in priorityMorderList)
-        //            {
-        //                long fid = GetParentMo(priorityMorderList, workord);
-        //                var exm = examines.Find(s => s.morder_id == fid);
-        //                if (exm != null)
-        //                {
-        //                    var childs = exm.BomChildExamineList.Where(s => s.is_use == true).ToList();
-        //                    var child = childs.Find(s => s.item_number == workord.product_code);
-        //                    if (workord.morder_type == "返工工单")
-        //                    {
-        //                        child = childs.Find(s => s.item_number == workord.product_code && s.level == 1);
-        //                    }
-        //                    if (child == null)
-        //                    {
-        //                        continue;
-        //                    }
-        //                    List<BomChildExamineDto> returnList = new List<BomChildExamineDto>();
-        //                    var productOps = productOpList.Where(x => x.ProductItem == workord.product_code).ToList();
-        //                    GetWorkDetalis(childs.Where(s => s.parent_id == child.fid).ToList(), returnList, childs, productOps);
-        //                    if (returnList.Any())
-        //                    {
-        //                        WorkOrdDetail woDetail = null;
-        //                        var calereturnList = returnList.OrderBy(c => c.item_number).Select(x => x.item_number).Distinct().ToList();
-        //                        var work = workOrds.Find(x => x.WorkOrd == workord.morder_no);
-        //                        if (work == null)
-        //                        {
-        //                            continue;
-        //                        }
-        //                        short num = 1;
-        //                        foreach (var caleNumber in calereturnList)
-        //                        {
-        //                            var caleList = returnList.Where(x => x.item_number == caleNumber).ToList();
-        //                            var itemMst = itemMasterList.Find(x => x.ItemNum == caleNumber);
-        //                            //添加工单的物料信息
-        //                            woDetail = new WorkOrdDetail();
-        //                            woDetail.Domain = workord.factory_id.ToString();
-        //                            woDetail.WorkOrd = workord.morder_no;
-        //                            var oplist = caleList.Where(x => x.Op > 0).ToList();
-        //                            woDetail.Op = 0;
-        //                            if (oplist.Any())
-        //                            {
-        //                                woDetail.Op = oplist.Min(f => f.Op);
-        //                            }
-        //                            woDetail.ItemNum = caleNumber;
-        //                            woDetail.QtyPosted = 0m;
-        //                            woDetail.QtyReturned = 0m;
-        //                            woDetail.Status = "";
-        //                            woDetail.IsActive = true;
-        //                            woDetail.CreateTime = DateTime.Now;
-        //                            woDetail.Line = num;
-        //                            woDetail.QtyRequired = caleList.Sum(c => c.needCount);
-        //                            woDetail.WorkOrdMasterRecID = work.RecID;
-        //                            woDetail.Location = itemMst == null ? "" : itemMst.Location;
-        //                            if (workord.need_number != 0)
-        //                            {
-        //                                woDetail.FrozenBOMQty = Math.Round(woDetail.QtyRequired / workord.need_number.GetValueOrDefault(), 10);
-        //                            }
-        //                            mainWorkOrdDetails.Add(woDetail);
-        //                            num++;
-        //                        }
-        //                    }
-        //                }
-        //            }
-        //            if (delWorkOrddetails.Any())
-        //            {
-        //                _businessDbContext.BulkDelete(delWorkOrddetails);
-        //            }
-        //            if (mainWorkOrdDetails.Any())
-        //            {
-        //                _businessDbContext.BulkInsert(mainWorkOrdDetails);
-        //            }
-        //        }
-        //    }
-        //    if (planCheck)
-        //    {
-        //        //如果有计划工单,则需要生成pr po oo
-        //        List<mo_srm_pr_main> prmainlist = new List<mo_srm_pr_main>();
-        //        if (_CalcBomViewAppService.SRMPRDtoList.Any())
-        //        {
-        //            List<List<mo_srm_pr_main>> prlist = _CalcBomViewAppService.SRMPRDtoList.Where(f => f.srm_Pr_Main != null).Select(s => s.srm_Pr_Main).ToList();
-        //            List<mo_srm_pr_main> list = new List<mo_srm_pr_main>();
-
-        //            foreach (var pr in prlist)
-        //            {
-        //                foreach (var item in pr)
-        //                {
-        //                    list.Add(item);
-        //                    prmainlist.Add(item);
-        //                }
-        //            }
-        //            if (list.Any())
-        //                rtn.srm_pr_list = _CalcBomViewAppService.SRMPRDtoList;
-        //        }
-        //        if (prmainlist.Any())
-        //        {
-        //            var nbrlistDto = _serialNumberAppService.GetBillNo(prmainlist[0].factory_id.ToString(), "PR", prmainlist.Count, "admin", 1);
-        //            int index = 0;
-        //            foreach (var p in prmainlist)
-        //            {
-        //                if (nbrlistDto[index] != null)
-        //                {
-        //                    p.pr_billno = nbrlistDto[index].NbrResult.ToString();
-        //                }
-        //                index++;
-        //                if (p.pr_purchaseid.GetValueOrDefault() == 0)
-        //                {
-        //                    //数据丢失
-        //                    var list = _mysql_srm_purchase.GetListAsync(s => s.icitem_id == p.icitem_id).Result;
-        //                    if (list.Any())
-        //                    {
-        //                        var purchase = list.OrderBy(s => s.quota_priority).FirstOrDefault();
-        //                        p.pr_purchaseid = purchase.supplier_id;
-        //                        p.pr_purchasename = purchase.supplier_name;
-        //                        p.pr_purchasenumber = purchase.supplier_number;
-        //                    }
-        //                }
-        //            }
-        //        }
-        //        using (var unitOfWork = _unitOfWorkManager.Begin(false, true))
-        //        {
-        //            try
-        //            {
-        //                _businessDbContext.BulkUpdate(mo_Mes_Morders);
-        //                /*if (workOrdMasters.Any())
-        //                {
-        //                    _workOrdMaster.Update(workOrdMasters);
-        //                }*/
-        //                if (prmainlist.Any())
-        //                {
-        //                    var pr_mainlist = ObjectMapper.Map<List<mo_srm_pr_main>, List<srm_pr_main>>(prmainlist);
-        //                    _businessDbContext.BulkInsert(pr_mainlist);
-        //                }
-        //                if (_CalcBomViewAppService.newStockOccList.Any())
-        //                {
-        //                    var stockoccupylist = ObjectMapper.Map<List<mo_ic_item_stockoccupy>, List<ic_item_stockoccupy>>(_CalcBomViewAppService.newStockOccList);
-        //                    stockoccupylist.ForEach(s => { s.GenerateNewId(help.NextId()); s.create_time = DateTime.Now; s.tenant_id = param.company_id.GetValueOrDefault(); s.company_id = param.company_id; s.factory_id = param.factoryId; });
-        //                    _businessDbContext.BulkInsert(stockoccupylist);
-        //                }
-        //                if (_CalcBomViewAppService.srm_Po_OccupiesInsert.Any())
-        //                {
-        //                    _CalcBomViewAppService.srm_Po_OccupiesInsert.ForEach(s => { s.company_id = param.company_id; s.factory_id = param.factoryId; });
-        //                    var srmpooccupyInsert = ObjectMapper.Map<List<mo_srm_po_occupy>, List<srm_po_occupy>>(_CalcBomViewAppService.srm_Po_OccupiesInsert);
-        //                    srmpooccupyInsert.ForEach(x => { x.GenerateNewId(help.NextId()); });
-        //                    _businessDbContext.BulkInsert(srmpooccupyInsert);
-        //                }
-
-        //                await unitOfWork.CompleteAsync();
-        //            }
-        //            catch (Exception e)
-        //            {
-        //                unitOfWork.Dispose();
-        //                new NLogHelper("ResourceExamineAppService").WriteLog("OrderKittingCheck", "工单检查数据更新失败:" + e.Message, _currentTenant.Id.ToString());
-        //            }
-        //        }
-
-        //    }
-        //    if (!writeNum)
-        //    {
-        //        //检查结果写入数据库
-        //        await ExamineResultInsertDBAsync(examines);
-        //    }
-        //    //清空快照数据
-        //    await ClearSnapShot(bangid);
-        //    return rtn;
-        //}
+        /// <summary>
+        /// 工单物料齐套检查
+        /// </summary>
+        /// <param name="input"></param>
+        public async Task<PschedDto> OrderDetailKittingCheck(string domain, string userAccount, List<mes_morder> mo_Mes_Morders = null)
+        {
+            // 调用优先级计算算法
+            //var workOrds = _replenishmentAppService.CalcPriority(mo_Mes_Morders.Select(p => p.morder_no).ToList(), param.factoryId.ToString());
+            List<string> tsWork = new List<string> { "test", "tcn", "rw" };
+            var workOrds = _workOrdMaster.Select(x => x.Domain == domain && x.IsActive && (string.IsNullOrEmpty(x.Typed) == true || tsWork.Contains(x.Typed)) && (x.Status.ToLower() == "p" || x.Status.ToLower() == "r")).OrderBy(c => c.Priority).ToList();
+            if (mo_Mes_Morders == null)
+            {
+                mo_Mes_Morders = _mysql_mes_morder.GetListAsync(x => domain == x.factory_id.ToString() && workOrds.Select(s => s.WorkOrd).Contains(x.morder_no) && (x.morder_state == MorderEnum.Initial_state || x.morder_state == MorderEnum.Xd_state) && !x.IsDeleted).Result;
+            }
+            var workOrdRoutings = _workOrdRouting.Select(a => mo_Mes_Morders.Select(p => p.morder_no).Contains(a.WorkOrd) && a.Domain == param.factoryId.ToString() && a.IsActive).ToList();
+            //清理工单物料明细
+            var delWorkOrddetails = _workOrdDetail.Select(x => workOrds.Select(c => c.RecID).Contains((int)x.WorkOrdMasterRecID) && x.Domain == param.factoryId.ToString());
+            //资源检查结果
+            PschedDto rtn = new PschedDto();
+            //资源检查明细list
+            List<ExamineResult> examines = new List<ExamineResult>();
+            if (!mo_Mes_Morders.Any())
+            {
+                return rtn;
+            }
+            List<mes_morder> db_mes_morder = new List<mes_morder>();
+            db_mes_morder = mo_Mes_Morders;
+            //资源检查入参全局变量赋值
+            param.company_id = mo_Mes_Morders[0].company_id;
+            param.factoryId = mo_Mes_Morders[0].factory_id.GetValueOrDefault();
+            param.checkflag = false;
+            param.checkPlan = false;
+            param.writeNum = true;
+            //生成当前计算bangid
+            long bangid = help.NextId();
+
+            var morderIdList = mo_Mes_Morders.Select(s => s.Id).ToList();
+
+            List<mes_moentry> mo_Mes_Moentries = _mysql_mes_moentry.GetListAsync(x => morderIdList.Contains(x.moentry_moid.Value)).Result;
+
+            //获取订单行数据
+            List<crm_seorderentry> sentrys = _mysql_crm_seorderentry.GetListAsync(p => p.company_id == param.company_id && p.factory_id == param.factoryId && !p.IsDeleted && mo_Mes_Moentries.Select(x => x.soentry_id).Contains(p.Id)).Result;
+
+            List<mo_ic_bom> boms = _ic_bom.GetListAsync(p => mo_Mes_Morders.Select(m => m.bom_number).Contains(p.bom_number) && p.factory_id == param.factoryId && p.company_id == param.company_id && !p.IsDeleted).Result.ToList();
+
+            //删除同步Mysql后旧数据
+            await DeleteMySqlOldData(sentrys);
+            //物料信息
+            List<mo_ic_item> icitemlist = new List<mo_ic_item>();
+
+            //物料库存表
+            List<mo_ic_item_stock> stocklist = new List<mo_ic_item_stock>();
+            //物料占用记录
+            List<mo_ic_item_stockoccupy> sklist = new List<mo_ic_item_stockoccupy>();
+            //工单物料信息组成bom清单
+            List<b_bom_pretreatment> pretreatments = new List<b_bom_pretreatment>();
+            workOrds.ForEach(x => {
+                b_bom_pretreatment bomChildExamineDto = new b_bom_pretreatment();
+                //bomChildExamineDto.fid = "";
+                //bomChildExamineDto.bom_child_id = "";
+                //bomChildExamineDto.bom_id = "";
+                //bomChildExamineDto.bom_number = "";
+                //bomChildExamineDto.qty = "";
+                //bomChildExamineDto.erp_cls = "";
+                //bomChildExamineDto.sourceid = "";
+                //bomChildExamineDto.company_id = "";
+                //bomChildExamineDto.Scrap = "";
+                //bomChildExamineDto.item_id = "";
+                //bomChildExamineDto.item_name = "";
+                //bomChildExamineDto.item_number = "";
+                //bomChildExamineDto.level = "";
+                //bomChildExamineDto.model = "";
+                //bomChildExamineDto.unit = "";
+                //bomChildExamineDto.num = "";
+                //bomChildExamineDto.parent_id = "";
+                //bomChildExamineDto.type = "";
+                //bomChildExamineDto.version = "";
+                //bomChildExamineDto.wastage = "";
+                //bomChildExamineDto.PurLT = "";
+                //bomChildExamineDto.clean_leadtime = "";
+                //bomChildExamineDto.factory_id = "";
+                pretreatments.Add(bomChildExamineDto);
+            });
+
+            await AsyncItemStockFromWMS(pretreatments);
+            //数据库快照-同步mysql库数据到mongoDB中
+            await DbSnapShot(param.company_id, param.factoryId, bangid, pretreatments);
+
+            DataInitialization(boms, bangid, icitemlist, stocklist, pretreatments, sklist);
+
+            List<mes_morder> priorityMorderList = new List<mes_morder>();
+            foreach (var work in workOrds)
+            {
+                var mo = mo_Mes_Morders.Find(s => s.morder_no == work.WorkOrd);
+
+                var routings = workOrdRoutings.Where(r => r.WorkOrd == work.WorkOrd).ToList();
+                if (routings.Any() && mo != null)
+                {
+                    //最大生产数量
+                    var QtyComplete = routings.Max(r => r.QtyComplete);
+                    //修改订单需求数为在制数量
+                    mo.need_number = mo.need_number - QtyComplete;
+                    work.OpQtyCompleted = QtyComplete;
+                    work.InProdcutQty = mo.need_number;
+                }
+
+                if (mo != null)
+                {
+                    if (mo.need_number > 0)
+                    {
+                        priorityMorderList.Add(mo);
+                    }
+                }
+            }
+            if (!priorityMorderList.Any())
+            {
+                priorityMorderList = mo_Mes_Morders;
+            }
+            _morderAppService.param = param;
+            _purchaseOrderAppService.param = param;
+            _CalcBomViewAppService.param = param;
+
+            List<string> GenerateMoList = new List<string>();
+            _CalcBomViewAppService.GenerateMoList = GenerateMoList;
+            _CalcBomViewAppService.newStockOccList = new List<mo_ic_item_stockoccupy>();
+            sklist = sklist.Where(s => !priorityMorderList.Select(p => p.morder_no).Contains(s.morder_mo)).ToList();
+            foreach (var item in priorityMorderList)
+            {
+                var moentry = mo_Mes_Moentries.Find(s => s.moentry_moid == item.Id);
+                if (moentry == null)
+                {
+                    continue;
+                }
+                var sentry = sentrys.Find(s => s.Id == moentry.soentry_id);
+
+                //工单资源检查信息
+                ExamineResult dtl = new ExamineResult();
+                dtl.morder_id = item.Id;
+                dtl.morder_no = item.morder_no;
+                dtl.bangid = bangid;
+                dtl.order_statr_time = item.start_time;
+                dtl.bom_number = item.bom_number;
+                dtl.need_qty = item.need_number.GetValueOrDefault();
+                dtl.prd_code = item.product_code;
+
+                //获取当前物料bom数据
+                List<b_bom_pretreatment> itemPrelist = new List<b_bom_pretreatment>();
+                //通过工单ID读取,考虑特殊工单的预处理
+                itemPrelist = pretreatments.Where(s => s.sourceid == item.Id).ToList();
+                if (!itemPrelist.Any())
+                {
+                    var childBom = boms.Where(p => p.bom_number == item.bom_number).FirstOrDefault();
+                    if (childBom != null)
+                    {
+                        itemPrelist = pretreatments.Where(s => s.sourceid == childBom.mysql_id).ToList();
+                    }
+                    else
+                    {
+                        continue;
+                    }
+                }
+                if (!itemPrelist.Any())
+                {
+                    continue;
+                }
+
+                var getBomList = ObjectMapper.Map<List<b_bom_pretreatment>, List<BomChildExamineDto>>(itemPrelist);
+
+                if (sentry != null)
+                {
+                    dtl.sentry_id = sentry.Id;
+                    getBomList.ForEach(s => s.sentry_id = item.Id);
+                }
+                if (getBomList.Count == 1)
+                {
+                    var isy = 1;
+                }
+
+                _CalcBomViewAppService.morder_type = item.morder_type;
+                _CalcBomViewAppService.mes_morder = item;
+                //库存初始化
+                _CalcBomViewAppService.BomStock(getBomList, stocklist, bangid);
+
+                //计算
+                _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);
+                //物料齐套时间
+                dtl.kitting_times = getBomList.Where(p => p.is_use && p.kitting_time != null).OrderByDescending(m => m.kitting_time).First().kitting_time.GetValueOrDefault();
+                //kitting_time=null为自制组件跳过数据未进行计算,kitting_state=0的数据未参与计算
+                var qllist = getBomList.Where(x => x.use_qty == 0 && x.kitting_time != null && x.needCount != 0 && x.erp_cls != 4 && x.level != 1 && x.kitting_state != 0).ToList();
+                var work = workOrds.Find(x => x.WorkOrd == item.morder_no);
+                if (qllist.Any())
+                {
+                    work.LocationStock = 0;
+                }
+                else
+                {
+                    qllist = getBomList.Where(x => x.use_qty > 0 && x.kitting_time != null && x.needCount != 0 && x.erp_cls != 4 && x.level == 2 && x.kitting_state == 1).ToList();
+                    if (qllist.Any())
+                    {
+                        //按比例计算成品齐套个数
+                        work.LocationStock = qllist.Min(b => b.use_qty / b.qty) > work.QtyOrded ? work.QtyOrded : qllist.Min(b => b.use_qty / b.qty);
+                    }
+                    else
+                    {
+                        work.LocationStock = 0;
+                    }
+                }
+                //替代关系展开list
+                dtl.BomChildExamineList = getBomList;
+                //添加订单行开工信息
+                examines.Add(dtl);
+            }
+            rtn.examines = examines;
+            //检查结果写入数据库
+            await ExamineResultInsertDBAsync(examines);
+            //清空快照数据
+            await ClearSnapShot(bangid);
+            return rtn;
+        }
 
         //public void DetailDataInitialization(List<mo_ic_bom> boms, long bangid, List<mo_ic_item> icitemlist, List<mo_ic_item_stock> stocklist, List<b_bom_pretreatment> pretreatments, List<mo_ic_item_stockoccupy> sklist, bool writeNum = false)
         //{
@@ -5120,10 +4952,6 @@ namespace Business.ResourceExamineManagement
                 List<b_bom_pretreatment> addList = new List<b_bom_pretreatment>();
                 foreach (var bom in ic_Boms)
                 {
-                    if (bom.bom_number == "91HC0397")
-                    {
-                        var isy = 1;
-                    }
                     var pret = pretreatment.Where(s => s.sourceid == bom.mysql_id).ToList();
                     if (pret.Any())
                     {
@@ -5438,7 +5266,7 @@ namespace Business.ResourceExamineManagement
             }
             var locStock = _invMaster.Select(a => itemChildList.Contains(a.ItemNum) && a.IsActive && a.Domain == param.factoryId.ToString() && locationList.Contains(a.Location));
             //var sapInvList = _SAPInv.Select(a => a.WERKS == param.factoryId.ToString() && itemChildList.Contains(a.MATNR) && (a.SOBKZ.ToUpper() == "O" || locationList.Contains(a.LGORT)));
-            var sapInvList = _SAPInv.Select(a => a.WERKS == param.factoryId.ToString() && itemChildList.Contains(a.MATNR) && locationList.Contains(a.LGORT));
+            //var sapInvList = _SAPInv.Select(a => a.WERKS == param.factoryId.ToString() && itemChildList.Contains(a.MATNR) && locationList.Contains(a.LGORT));
             //根据WMS物料,取出DOP物料数据
             var items = _mysql_ic_item.GetListAsync(a => itemChildList.Contains(a.number) && a.factory_id == param.factoryId).Result;
 
@@ -5473,10 +5301,10 @@ namespace Business.ResourceExamineManagement
                     foreach (var lct in locationList)
                     {
                         var lctQty = locStock.Where(s => s.ItemNum == item.icitem_number && s.Location == lct).Sum(p => p.AvailStatusQty.GetValueOrDefault() + p.Assay.GetValueOrDefault());
-                        if (lctQty == 0)
-                        {
-                            lctQty = sapInvList.Where(x => x.MATNR == item.icitem_number && x.LGORT == lct).Sum(p => p.LABST + p.INSME);
-                        }
+                        //if (lctQty == 0)
+                        //{
+                        //    lctQty = sapInvList.Where(x => x.MATNR == item.icitem_number && x.LGORT == lct).Sum(p => p.LABST + p.INSME);
+                        //}
                         item.sqty += lctQty;
                     }
                     /*if (param.checkPlan)
@@ -7162,7 +6990,7 @@ namespace Business.ResourceExamineManagement
                     locationList = locationRange.Val.SplitToArray(",").ToList();
                 }
                 //SAP库存表
-                var itemListStock = _SAPInv.Select(a => items.Contains(a.MATNR) && locationList.Contains(a.LGORT) && a.WERKS == domain);
+                //var itemListStock = _SAPInv.Select(a => items.Contains(a.MATNR) && locationList.Contains(a.LGORT) && a.WERKS == domain);
                 //Dop库存表包含VMI库存
                 var itemListVMIStock = _invMaster.Select(a => items.Contains(a.ItemNum) && a.IsActive && locationList.Contains(a.Location) && a.Domain == domain);
                 List<ic_demandschedule> ds = new List<ic_demandschedule>();
@@ -7183,10 +7011,10 @@ namespace Business.ResourceExamineManagement
                     foreach (var loc in locationList)
                     {
                         var lctQty = itemListVMIStock.Where(s => s.ItemNum == item && s.Location==loc).Sum(p => p.AvailStatusQty.GetValueOrDefault() + p.Assay.GetValueOrDefault());
-                        if (lctQty == 0)
-                        {
-                            lctQty = itemListStock.Where(s => s.MATNR == item && s.LGORT == loc).Sum(p => p.LABST + p.INSME);
-                        }
+                        //if (lctQty == 0)
+                        //{
+                        //    lctQty = itemListStock.Where(s => s.MATNR == item && s.LGORT == loc).Sum(p => p.LABST + p.INSME);
+                        //}
                         if (!weekStockQty.ContainsKey(item))
                         {
                             weekStockQty.Add(item, lctQty);

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

@@ -3730,3 +3730,21 @@
 {"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2025-06-05T14:16:01.86224+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
 {"TaskName":"TestTimeOut","GroupName":"systemquartzjob","BeginDate":"2025-06-05T14:16:01.8678751+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
 {"TaskName":"BOM预处理自动任务","GroupName":"BOM预处理自动任务","BeginDate":"2025-06-05T14:16:01.8701085+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2025-06-05T17:39:05.6714123+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2025-06-05T17:39:05.7037285+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2025-06-05T17:39:05.7061119+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2025-06-05T17:39:05.7079021+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"TestTimeOut","GroupName":"systemquartzjob","BeginDate":"2025-06-05T17:39:05.7127932+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"BOM预处理自动任务","GroupName":"BOM预处理自动任务","BeginDate":"2025-06-05T17:39:05.714894+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2025-06-05T17:44:09.0969822+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2025-06-05T17:44:09.1278253+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2025-06-05T17:44:09.1309617+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2025-06-05T17:44:09.1328358+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"TestTimeOut","GroupName":"systemquartzjob","BeginDate":"2025-06-05T17:44:09.1369352+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"BOM预处理自动任务","GroupName":"BOM预处理自动任务","BeginDate":"2025-06-05T17:44:09.1393686+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步WMS物料订单等基础数据到MySQL","GroupName":"systemquartzjob","BeginDate":"2025-06-05T17:53:41.2687223+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时创建NLog日志按月分表","GroupName":"systemquartzjob","BeginDate":"2025-06-05T17:53:41.3040976+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"定时同步MySQL基础数据到MongoDB","GroupName":"systemquartzjob","BeginDate":"2025-06-05T17:53:41.3076159+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"长周期物料PR","GroupName":"systemquartzjob","BeginDate":"2025-06-05T17:53:41.3095271+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"TestTimeOut","GroupName":"systemquartzjob","BeginDate":"2025-06-05T17:53:41.3143105+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"BOM预处理自动任务","GroupName":"BOM预处理自动任务","BeginDate":"2025-06-05T17:53:41.3163705+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}