فهرست منبع

优化代码并添加 ProductMachCode 判断逻辑

删除了注释掉的代码行,并对现有代码进行了格式调整和优化。
在 `invlist` 的筛选条件和 `foreach` 循环中,移除了注释掉的旧代码,保留了新的逻辑。
在 `invlist1` 和 `invlist` 的查询条件中,添加了对 `ProductMachCode` 的判断逻辑,以区分不同的处理方式。
林豪 左 5 ماه پیش
والد
کامیت
e94b1ec5d2
1فایلهای تغییر یافته به همراه9 افزوده شده و 10 حذف شده
  1. 9 10
      wms.service/Service/SXService.cs

+ 9 - 10
wms.service/Service/SXService.cs

@@ -837,7 +837,7 @@ namespace wms.service.Service
                 int endhour = int.Parse(TorschkDate.Default3);
 
                 //2025-01-02 客户要求所有未扭转在库内的工字轮都要扭转
-                //invlist = invlist.ToList().Where(p => decimal.Parse((DateTime.Now - p.ProductTime).TotalHours.ToString("f2")) >= (p.HoldTime - decimal.Parse(TorschkDate.Default1)) && DateTime.Now.Hour >= srarthour && DateTime.Now.Hour <= endhour);
+                invlist = invlist.ToList().Where(p => decimal.Parse((DateTime.Now - p.ProductTime).TotalHours.ToString("f2")) >= (p.HoldTime - decimal.Parse(TorschkDate.Default1)) && DateTime.Now.Hour >= srarthour && DateTime.Now.Hour <= endhour);
                 if (!invlist.Any())
                 {
                     RedisHelper.Set("Sx:WMSErrorInfo:TorsChkEquip1", new RedisErrorInfo() { Equip = "TorsChkEquip1", Con = ResponseStatusCodeEnum.NotEnoughStock.GetDescription() + "没有需要扭转检测的工字轮", Time = DateTime.Now });
@@ -846,7 +846,7 @@ namespace wms.service.Service
                     return res;
                 }
                 var startTime = DateTime.Now.Date.AddDays(-1).AddMilliseconds(-1);
-                invlist = invlist.Where(x=>x.ProductTime < startTime).ToList().OrderBy(p => p.Depth).OrderByDescending(p => p.ProductTime.Day);
+                invlist = invlist.Where(x => x.ProductTime < startTime).ToList().OrderBy(p => p.Depth).OrderByDescending(p => p.ProductTime.Day);
                 var tasklist = _taskrepository.AsQueryable().With(SqlWith.NoLock).Where(p => p.BusType == SxTaskBusType.TaskBusType_SX_TorCheckStockOut.GetDescription() && p.Type == TaskType.OutDepot).ToList();
                 var torTaskCount = _sysconfigrepository.GetFirst(p => p.Code == "TorTaskCount").SContent;
                 if (tasklist.Any() && tasklist.Count > int.Parse(torTaskCount))
@@ -915,7 +915,7 @@ namespace wms.service.Service
                 //{
                 int pp = 0;
                 //invlist = invlist.Where(p => p.Floor == floor);
-                
+
                 foreach (var item in invlist)
                 {
                     if (item.TorsChkValue != null)
@@ -927,11 +927,10 @@ namespace wms.service.Service
                     //    break;
                     //}
                     var time1 = item.HoldTime + decimal.Parse(TorschkDate.SContent); //时效上限
-                    //var time2 = item.HoldTime - decimal.Parse(TorschkDate.Default1); //时效下限
-                    //|| (decimal.Parse((DateTime.Now - item.ProductTime).TotalHours.ToString("f2")) > 72 && decimal.Parse((DateTime.Now - item.ProductTime).TotalHours.ToString("f2")) > item.HoldTime)
-                    //if (decimal.Parse((DateTime.Now - item.ProductTime).TotalHours.ToString("f2")) >= time2) //按小时判断是否扭转的方式应客户要求停用-2024-12-24
-                    
-                    if (item.ProductTime <= startTime) //时间在此范围即可流转,例:3号标记的检测盘(00:00到23:59之间),5号全部出库进行检测(7点开始出
+                    var time2 = item.HoldTime - decimal.Parse(TorschkDate.Default1); //时效下限
+                                                                                     //|| (decimal.Parse((DateTime.Now - item.ProductTime).TotalHours.ToString("f2")) > 72 && decimal.Parse((DateTime.Now - item.ProductTime).TotalHours.ToString("f2")) > item.HoldTime)
+                    if (decimal.Parse((DateTime.Now - item.ProductTime).TotalHours.ToString("f2")) >= time2) //按小时判断是否扭转的方式应客户要求停用-2024-12-24
+                                                                                                             //if (item.ProductTime <= startTime) //时间在此范围即可流转,例:3号标记的检测盘(00:00到23:59之间),5号全部出库进行检测(7点开始出
                     {
                         var inv = _billInvnowrepository.GetSingle(p =>
                             p.ContGrpBarCode == item.ContGrpBarCode &&
@@ -14096,7 +14095,7 @@ namespace wms.service.Service
             //
             var invlist1 = from loc in _basewarecellrepository.GetList(p => p.IsStop == LocationStop.LocationInvoke.GetHashCode() && p.StateNum == LocationState.LocationState_Full)
                            join stock in _billInvnowrepository.GetList(p => p.InvStateCode == InvState.InvEcecState_In.ToString() && p.ExecStateCode == InvLockState.InvState_Normal.ToString() && p.Grade == "B" && string.IsNullOrEmpty(p.PreStock) //&& p.ContUsageQty <= 0
-                           && (DateTime.Now - p.ProductTime).TotalHours <= timeOutHoldHours)
+                           && ((p.ProductMachCode.Contains("R") && (DateTime.Now - p.ProductTime).TotalHours <= timeOutHoldHours) || (!p.ProductMachCode.Contains("R") && ((DateTime.Now - p.OneInTime).TotalHours <= timeOutHoldHours))))
                            on loc.ContGrpBarCode equals stock.ContGrpBarCode
                            select new StockTemp
                            {
@@ -14583,7 +14582,7 @@ namespace wms.service.Service
             //
             var invlist = from loc in _basewarecellrepository.GetList(p => p.IsStop == LocationStop.LocationInvoke.GetHashCode() && p.StateNum == LocationState.LocationState_Full)
                           join stock in _billInvnowrepository.GetList(p => p.InvStateCode == InvState.InvEcecState_In.ToString() && p.ExecStateCode == InvLockState.InvState_Normal.ToString() && p.Grade == "A" && string.IsNullOrEmpty(p.PreStock) //&& p.ContUsageQty <= 0
-                          && p.InDocsNo.StartsWith("CHA") && (DateTime.Now - p.OneInTime).TotalHours > timeOutHoldHours)
+                          && p.InDocsNo.StartsWith("R") && (DateTime.Now - p.OneInTime).TotalHours > timeOutHoldHours)
                           on loc.ContGrpBarCode equals stock.ContGrpBarCode
                           select new StockTemp
                           {