xu.lu 6 mesiacov pred
rodič
commit
f62c5fdfff
1 zmenil súbory, kde vykonal 72 pridanie a 7 odobranie
  1. 72 7
      wms.service/Service/FJService.cs

+ 72 - 7
wms.service/Service/FJService.cs

@@ -7,6 +7,7 @@ using AutoMapper;
 using Castle.Core.Internal;
 using Microsoft.Extensions.Logging;
 using Newtonsoft.Json;
+using NPOI.SS.Formula.Functions;
 using SqlSugar;
 using SqlSugar.Extensions;
 using WCS.Entity.fj;
@@ -825,6 +826,8 @@ namespace wms.service.Service
 
             var taskMax = Convert.ToInt32(_sysconfigrepository.AsQueryable().With(SqlWith.NoLock)
                 .First(x => x.Code == "FullPalletInMax").SContent);
+            //var station_Use = _sysconfigrepository.AsQueryable().With(SqlWith.NoLock)
+            //    .First(x => x.Code == "InStation" && x.SContent == "1").Name;
             var taskCount = _taskrepository.AsQueryable().With(SqlWith.NoLock).Count(x =>
                 x.BusType == FJTaskBusType.人工满托入库.GetDescription() && x.Status < TaskStatus.Finish);
 
@@ -1027,25 +1030,52 @@ namespace wms.service.Service
                     x.WarehouseCode == "1N" && x.IsStop == 0 && x.StateNum == FjLocationState.Empty && x.Layer < 9);
                 var invnowCount_2N = _basewarecellrepository.AsQueryable().With(SqlWith.NoLock).Count(x =>
                     x.WarehouseCode == "2N" && x.IsStop == 0 && x.StateNum == FjLocationState.Empty && x.Layer < 9);
+                var invnowCount_1S = _basewarecellrepository.AsQueryable().With(SqlWith.NoLock).Count(x =>
+                    x.WarehouseCode == "1S" && x.IsStop == 0 && x.StateNum == FjLocationState.Empty && x.Layer < 9);
+                var invnowCount_2S = _basewarecellrepository.AsQueryable().With(SqlWith.NoLock).Count(x =>
+                    x.WarehouseCode == "2S" && x.IsStop == 0 && x.StateNum == FjLocationState.Empty && x.Layer < 9);
+                //在途任务数量
                 var taskInfoCount_1N = _taskrepository.AsQueryable().With(SqlWith.NoLock).Count(x =>
                     x.Status < TaskStatus.Finish && x.BusType == FJTaskBusType.人工满托入库.GetDescription() &&
                     x.WarehouseCode == "1N");
                 var taskInfoCount_2N = _taskrepository.AsQueryable().With(SqlWith.NoLock).Count(x =>
                     x.Status < TaskStatus.Finish && x.BusType == FJTaskBusType.人工满托入库.GetDescription() &&
                     x.WarehouseCode == "2N");
+                var taskInfoCount_1S = _taskrepository.AsQueryable().With(SqlWith.NoLock).Count(x =>
+                    x.Status < TaskStatus.Finish && x.BusType == FJTaskBusType.人工满托入库.GetDescription() &&
+                    x.WarehouseCode == "1S");
+                var taskInfoCount_2S = _taskrepository.AsQueryable().With(SqlWith.NoLock).Count(x =>
+                    x.Status < TaskStatus.Finish && x.BusType == FJTaskBusType.人工满托入库.GetDescription() &&
+                    x.WarehouseCode == "2S");
                 //创建对应任务
                 var count_1N = invnowCount_1N - taskInfoCount_1N;
                 var count_2N = invnowCount_2N - taskInfoCount_2N;
-                var wCode = count_1N >= count_2N ? "1N" : "2N";
+                var count_1S = invnowCount_1S - taskInfoCount_1S;
+                var count_2S = invnowCount_2S - taskInfoCount_2S;
+
+                var wCode = Max(count_1N,count_1S,count_2N,count_2S);//count_1N >= count_2N ? "1N" : "2N";
                 if ( taskCount > 0)
                     if ((wCode == "1N" && taskMax <= taskInfoCount_1N) ||
-                        (wCode == "2N" && taskMax <= taskInfoCount_2N))
+                        (wCode == "1S" && taskMax <= taskInfoCount_1S) ||
+                        (wCode == "2N" && taskMax <= taskInfoCount_2N) ||
+                        (wCode == "2S" && taskMax <= taskInfoCount_2S))
                     {
                         res.ResCode = ResponseStatusCodeEnum.Fail.GetHashCode();
                         res.ResMsg = $"禁止入库,最大入库任务数量已达{taskMax}";
                         return res;
                     }
 
+                //if (station_Use != null && !string.IsNullOrEmpty(station_Use))
+                //{
+                //    if (station_Use == "2535")
+                //    {
+                //        wCode = "1N";
+                //    }
+                //    else if (station_Use == "2735")
+                //    {
+                //        wCode = "1S";
+                //    }
+                //}
                 //创建入库记录
                 var createStockInWcsTaskReqest = new FJCreateStockInWcsTaskRequest
                 {
@@ -1087,6 +1117,28 @@ namespace wms.service.Service
             return res;
         }
 
+        public string Max(int count_1N,int count_1S, int count_2N, int count_2S)
+        {
+            string wareHouse = "1N";
+            int max = count_1N;
+            if (count_1S > max)
+            {
+                max = count_1S;
+                wareHouse = "1S";
+            }
+            if (count_2N > max)
+            {
+                max = count_2N;
+                wareHouse = "2N";
+            }
+            if (count_2S > max)
+            {
+                max = count_2S;
+                wareHouse = "2S";
+            }
+            return wareHouse;
+        }
+
         /// <summary>
         ///     人工创建UT满托入库任务
         /// </summary>
@@ -1692,14 +1744,14 @@ namespace wms.service.Service
                 if (stock != null && stock.InvStateCode == InvState.InvEcecState_In.ToString())
                 {
                     res.ResCode = ResponseStatusCodeEnum.Fail.GetHashCode();
-                    res.ResMsg = "该工字轮条码号已在库中,请检查工字轮条码号是否重复";
+                    res.ResMsg = $"工字轮条码{spool.SpoolCode}已在库中,请检查工字轮条码号是否重复";
                     return res;
                 }
 
                 if (stock != null && stock.InvStateCode == InvState.InvEcecState_OutGoing.ToString())
                 {
                     res.ResCode = ResponseStatusCodeEnum.Fail.GetHashCode();
-                    res.ResMsg = "该工字轮条码号存在出库中任务,请检查上一个任务是否已经完成";
+                    res.ResMsg = $"工字轮条码{spool.SpoolCode}存在出库中任务,请检查上一个任务是否已经完成";
                     return res;
                 }
 
@@ -1897,7 +1949,7 @@ namespace wms.service.Service
             }
 
             //托盘库存
-            var trayCode = _billInvnowrepository.GetSingle(p => p.ContGrpBarCode == reqDto.TrayCode);
+            var trayCode = _billInvnowrepository.GetFirst(p => p.ContGrpBarCode == reqDto.TrayCode);
             if (trayCode != null && trayCode.InvStateCode == InvState.InvEcecState_In.ToString())
             {
                 res.ResCode = ResponseStatusCodeEnum.Fail.GetHashCode();
@@ -1912,6 +1964,13 @@ namespace wms.service.Service
                 return res;
             }
 
+            if (trayCode != null && trayCode.InvStateCode == InvState.InvEcecState_BuildUp.ToString())
+            {
+                res.ResCode = ResponseStatusCodeEnum.Fail.GetHashCode();
+                res.ResMsg = "该托盘条码号存在已组盘中任务,请检查库存信息";
+                return res;
+            }
+
             var mac = _basemachinforepository.GetFirst(x => x.MachNo == reqDto.LocCode);
 
             try
@@ -8750,8 +8809,14 @@ namespace wms.service.Service
                         var wareHouse = _basewarehouserepository.GetSingle(x => x.Id == stocklist.First().WarehouseId);
                         if (wareHouse.TypeNum == FjLocationType.Pingku)
                         {
-                            _db.BeginTran();                          
-                            _billInvinitrepository.Delete(x => x.ContGrpBarCode == task.BarCode && x.InvStateCode == InvState.InvEcecState_BuildUp.ToString());                          
+                            _db.BeginTran();                                                     
+                            _billInvnowrepository.Delete(p => p.ContGrpBarCode == task.BarCode && p.InvStateCode == InvState.InvEcecState_BuildUp.ToString());
+                           
+                            //_billInvinitrepository.Delete(p =>
+                            //    hWBarCode.Contains(p.HWBarCode) &&
+                            //    p.InvStateCode == InvState.InvEcecState_OutGoing.ToString());
+                            //contGrpBarCode = stocklist.Select(p => p.ContGrpBarCode).ToList();
+                          
                             _db.CommitTran();                           
                         }
                     }