tangdi 2 лет назад
Родитель
Сommit
bb93486470

+ 120 - 12
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -3121,7 +3121,61 @@ namespace Business.ResourceExamineManagement
             //var ordlist = _workOrdMaster.Select(x => x.Domain == domain && x.OrdDate>= stime && x.OrdDate <= etime && (string.IsNullOrEmpty(x.Typed) == true || tsWork.Contains(x.Typed)) && (x.Status.ToLower() == "p" || x.Status.ToLower() == "r")).ToList();
             var ordlist = _workOrdMaster.Select(x => x.Domain == domain && (string.IsNullOrEmpty(x.Typed) == true || tsWork.Contains(x.Typed)) && (x.Status.ToLower() == "p" || x.Status.ToLower() == "r")).ToList();
 
-            //根据排产日计划来获取
+            List<mes_morder> morders = _mysql_mes_morder.GetListAsync(x => domain == x.factory_id.ToString() && ordlist.Select(s => s.WorkOrd).Contains(x.morder_no) && (x.morder_state == MorderEnum.Initial_state || x.morder_state == MorderEnum.Xd_state) && !x.IsDeleted).Result;
+            if (!morders.Any())
+            {
+                return "没有需要下达的工单";
+            }
+            var rst = await OrderResourceCheck(morders, domain, userAccount);
+            if (rst == "ok")
+            {
+                //屏蔽日期过滤
+                /*var sysSet = _generalizedCodeMaster.Select(s => s.FldName == "SystemConfig" && s.Val == "WorkOrderLockPeriod" && s.Domain == domain).ToList();
+                decimal lookDay = 0;
+                if (sysSet.Any())
+                {
+                    //锁定期
+                    lookDay = sysSet[0].UDeci1;
+                }
+                lookDay = lookDay == 0 ? 7 : lookDay;
+                DateTime lookTime = DateTime.Now.Date.AddDays((double)lookDay);*/
+
+                string workords = "";
+                foreach (var mo in morders)
+                {
+                    //if (mo.MaterialSituation == MorderEnum.CarehouseComplete && mo.morder_state == MorderEnum.Initial_state && mo.moentry_sys_stime.GetValueOrDefault().Date <= lookTime)
+                    if (mo.MaterialSituation == MorderEnum.CarehouseComplete && mo.morder_state == MorderEnum.Initial_state)
+                    {
+                        workords += "," + mo.morder_no;
+                        //mo.morder_state = MorderEnum.Xd_state;
+                    }
+                }
+                await _businessDbContext.BulkUpdateAsync(morders);
+                //按卫亮要求。屏蔽自动下达
+                /*if (workords.Length > 0)
+                {
+                    workords = workords.Substring(1, workords.Length - 1);
+                    //如果生成领料单,需清理掉当前工单的占用,然后根据领料单的数据,来生成工单的占用
+                    var pickRst = await CreatePickBill(workords, domain, userAccount);
+                    if (pickRst != "ok")
+                    {
+                        new NLogHelper("ResourceExamineAppService").WriteLog("CreatePickBill", "生成领料单相关数据更新失败:" + pickRst, _currentTenant.Id.ToString());
+                        return pickRst;
+                    }
+                    var insertList = GetCopyOP(workords, domain);
+                    if (insertList.Any())
+                    {
+                        _periodSequenceDet.Insert(insertList);
+                    }
+                }*/
+                return "ok";
+            }
+            else
+            {
+                return rst;
+            }
+            #region 
+            /*//根据排产日计划来获取
             var periodSd = _periodSequenceDet.Select(s => s.Domain == domain && ordlist.Select(x => x.WorkOrd).Contains(s.WorkOrds)).ToList();
             if (periodSd.Any())
             {
@@ -3136,7 +3190,7 @@ namespace Business.ResourceExamineManagement
                 if (rst == "ok")
                 {
                     //屏蔽日期过滤
-                    /*var sysSet = _generalizedCodeMaster.Select(s => s.FldName == "SystemConfig" && s.Val == "WorkOrderLockPeriod" && s.Domain == domain).ToList();
+                    *//*var sysSet = _generalizedCodeMaster.Select(s => s.FldName == "SystemConfig" && s.Val == "WorkOrderLockPeriod" && s.Domain == domain).ToList();
                     decimal lookDay = 0;
                     if (sysSet.Any())
                     {
@@ -3144,7 +3198,7 @@ namespace Business.ResourceExamineManagement
                         lookDay = sysSet[0].UDeci1;
                     }
                     lookDay = lookDay == 0 ? 7 : lookDay;
-                    DateTime lookTime = DateTime.Now.Date.AddDays((double)lookDay);*/
+                    DateTime lookTime = DateTime.Now.Date.AddDays((double)lookDay);*//*
 
                     string workords = "";
                     foreach (var mo in morders)
@@ -3158,7 +3212,7 @@ namespace Business.ResourceExamineManagement
                     }
                     await _businessDbContext.BulkUpdateAsync(morders);
                     //按卫亮要求。屏蔽自动下达
-                    /*if (workords.Length > 0)
+                    *//*if (workords.Length > 0)
                     {
                         workords = workords.Substring(1, workords.Length - 1);
                         //如果生成领料单,需清理掉当前工单的占用,然后根据领料单的数据,来生成工单的占用
@@ -3173,7 +3227,7 @@ namespace Business.ResourceExamineManagement
                         {
                             _periodSequenceDet.Insert(insertList);
                         }
-                    }*/
+                    }*//*
                     return "ok";
                 }
                 else {
@@ -3182,7 +3236,8 @@ namespace Business.ResourceExamineManagement
             }
             else {
                 return "选定范围内没有工单需要检查领料。";
-            }
+            }*/
+            #endregion
         }
 
         /// <summary>
@@ -3242,7 +3297,60 @@ namespace Business.ResourceExamineManagement
             {
                 return "当前工单为【"+ stateText + "】,不允许进行在库检";
             }
-            var periodSd = _periodSequenceDet.Select(s => s.Domain == domain && s.WorkOrds == workord && s.IsActive).ToList();
+            List<mes_morder> morders = _mysql_mes_morder.GetListAsync(x => domain == x.factory_id.ToString() && x.morder_no == workord && (string.IsNullOrEmpty(x.morder_state) || x.morder_state == MorderEnum.Initial_state || x.morder_state == MorderEnum.Xd_state) && !x.IsDeleted).Result;
+            if (!morders.Any())
+            {
+                return "当前工单不存在,请检查";
+            }
+            var rst = await OrderResourceCheck(morders, domain, userAccount);
+            if (rst == "ok")
+            {
+                //屏蔽日期过滤
+                /*var sysSet = _generalizedCodeMaster.Select(s => s.FldName == "SystemConfig" && s.Val == "WorkOrderLockPeriod" && s.Domain == domain).ToList();
+                decimal lookDay = 0;
+                if (sysSet.Any())
+                {
+                    //锁定期
+                    lookDay = sysSet[0].UDeci1;
+                }
+                lookDay = lookDay == 0 ? 7 : lookDay;
+                DateTime lookTime = DateTime.Now.Date.AddDays((double)lookDay);*/
+
+                string workords = "";
+                foreach (var mo in morders)
+                {
+                    //if (mo.MaterialSituation == MorderEnum.CarehouseComplete && mo.morder_state == MorderEnum.Initial_state && mo.moentry_sys_stime.GetValueOrDefault().Date <= lookTime)
+                    if (mo.MaterialSituation == MorderEnum.CarehouseComplete && mo.morder_state == MorderEnum.Initial_state)
+                    {
+                        workords += "," + mo.morder_no;
+                        //mo.morder_state = MorderEnum.Xd_state;
+                    }
+                }
+                await _businessDbContext.BulkUpdateAsync(morders);
+                //按卫亮要求。屏蔽自动下达
+                /*if (workords.Length > 0)
+                {
+                    workords = workords.Substring(1, workords.Length - 1);
+                    //如果生成领料单,需清理掉当前工单的占用,然后根据领料单的数据,来生成工单的占用
+                    var pickRst = await CreatePickBill(workords, domain, userAccount);
+                    if (pickRst != "ok")
+                    {
+                        new NLogHelper("ResourceExamineAppService").WriteLog("CreatePickBill", "生成领料单相关数据更新失败:" + pickRst, _currentTenant.Id.ToString());
+                        return pickRst;
+                    }
+                    var insertList = GetCopyOP(workords, domain);
+                    if (insertList.Any())
+                    {
+                        _periodSequenceDet.Insert(insertList);
+                    }
+                }*/
+                return "ok";
+            }
+            else
+            {
+                return rst;
+            }
+            /*var periodSd = _periodSequenceDet.Select(s => s.Domain == domain && s.WorkOrds == workord && s.IsActive).ToList();
             if (periodSd.Any())
             {
                 List<mes_morder> morders = _mysql_mes_morder.GetListAsync(x => domain == x.factory_id.ToString() && x.morder_no == workord && (string.IsNullOrEmpty(x.morder_state) || x.morder_state == MorderEnum.Initial_state || x.morder_state == MorderEnum.Xd_state) && !x.IsDeleted).Result;
@@ -3254,7 +3362,7 @@ namespace Business.ResourceExamineManagement
                 if (rst == "ok")
                 {
                     //屏蔽日期过滤
-                    /*var sysSet = _generalizedCodeMaster.Select(s => s.FldName == "SystemConfig" && s.Val == "WorkOrderLockPeriod" && s.Domain == domain).ToList();
+                    *//*var sysSet = _generalizedCodeMaster.Select(s => s.FldName == "SystemConfig" && s.Val == "WorkOrderLockPeriod" && s.Domain == domain).ToList();
                     decimal lookDay = 0;
                     if (sysSet.Any())
                     {
@@ -3262,7 +3370,7 @@ namespace Business.ResourceExamineManagement
                         lookDay = sysSet[0].UDeci1;
                     }
                     lookDay = lookDay == 0 ? 7 : lookDay;
-                    DateTime lookTime = DateTime.Now.Date.AddDays((double)lookDay);*/
+                    DateTime lookTime = DateTime.Now.Date.AddDays((double)lookDay);*//*
 
                     string workords = "";
                     foreach (var mo in morders)
@@ -3276,7 +3384,7 @@ namespace Business.ResourceExamineManagement
                     }
                     await _businessDbContext.BulkUpdateAsync(morders);
                     //按卫亮要求。屏蔽自动下达
-                    /*if (workords.Length > 0)
+                    *//*if (workords.Length > 0)
                     {
                         workords = workords.Substring(1, workords.Length - 1);
                         //如果生成领料单,需清理掉当前工单的占用,然后根据领料单的数据,来生成工单的占用
@@ -3291,7 +3399,7 @@ namespace Business.ResourceExamineManagement
                         {
                             _periodSequenceDet.Insert(insertList);
                         }
-                    }*/
+                    }*//*
                     return "ok";
                 }
                 else
@@ -3301,7 +3409,7 @@ namespace Business.ResourceExamineManagement
             }
             else {
                 return "当前工单未生成日计划";
-            }
+            }*/
         }
 
         /// <summary>