|  | @@ -823,8 +823,8 @@ namespace wms.service.Service
 | 
	
		
			
				|  |  |              var res = new SRes { ResCode = ResponseStatusCodeEnum.Fail.GetHashCode(), ResMsg = "失败" };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            var taskMax = Convert.ToInt32(_sysconfigrepository.AsQueryable().With(SqlWith.NoLock)
 | 
	
		
			
				|  |  | -                .First(x => x.Code == "FullPalletInMax").SContent);
 | 
	
		
			
				|  |  | +            //var taskMax = Convert.ToInt32(_sysconfigrepository.AsQueryable().With(SqlWith.NoLock)
 | 
	
		
			
				|  |  | +            //    .First(x => x.Code == "FullPalletInMax").SContent);
 | 
	
		
			
				|  |  |              var sameSideTaskNum = Convert.ToInt32(_sysconfigrepository.AsQueryable().With(SqlWith.NoLock)
 | 
	
		
			
				|  |  |                  .First(x => x.Code == "SameSideTaskInNum").SContent);
 | 
	
		
			
				|  |  |              //var station_Use = _sysconfigrepository.AsQueryable().With(SqlWith.NoLock)
 | 
	
	
		
			
				|  | @@ -1054,51 +1054,76 @@ namespace wms.service.Service
 | 
	
		
			
				|  |  |                  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);
 | 
	
		
			
				|  |  | -                if ( taskCount > 0)
 | 
	
		
			
				|  |  | -                    if ((wCode == "1N" && taskMax <= taskInfoCount_1N) ||
 | 
	
		
			
				|  |  | -                        (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 (wCode == "1N" && taskInfoCount_1N > sameSideTaskNum)
 | 
	
		
			
				|  |  | +                //获取空货位最多的仓库
 | 
	
		
			
				|  |  | +                var wCode = Max(count_1N,count_1S,count_2N,count_2S);               
 | 
	
		
			
				|  |  | +                if (taskCount > 0)
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  | -                    wCode = taskInfoCount_1N > taskInfoCount_1S ? "1S" : "1N";
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -                else if (wCode == "1S" && taskInfoCount_1S > sameSideTaskNum)
 | 
	
		
			
				|  |  | -                {
 | 
	
		
			
				|  |  | -                    wCode = taskInfoCount_1S > taskInfoCount_1N ? "1N" : "1S";
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -                else if (wCode == "2N" && taskInfoCount_2N > sameSideTaskNum)
 | 
	
		
			
				|  |  | -                {
 | 
	
		
			
				|  |  | -                    wCode = taskInfoCount_2N > taskInfoCount_2S ? "2S" : "2N";
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -                else if (wCode == "2S" && taskInfoCount_2S > sameSideTaskNum)
 | 
	
		
			
				|  |  | -                {
 | 
	
		
			
				|  |  | -                    wCode = taskInfoCount_2S > taskInfoCount_2N ? "2N" : "2S";
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -                //增加一个入库口配置,判断是否往这里分配任务
 | 
	
		
			
				|  |  | -                var noIn = "";
 | 
	
		
			
				|  |  | -                if (wCode == "1N" && noIn.Contains("1N") && !noIn.Contains("1S"))
 | 
	
		
			
				|  |  | -                {
 | 
	
		
			
				|  |  | -                    wCode = "1S";
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                //if (station_Use != null && !string.IsNullOrEmpty(station_Use))
 | 
	
		
			
				|  |  | -                //{
 | 
	
		
			
				|  |  | -                //    if (station_Use == "2535")
 | 
	
		
			
				|  |  | -                //    {
 | 
	
		
			
				|  |  | -                //        wCode = "1N";
 | 
	
		
			
				|  |  | -                //    }
 | 
	
		
			
				|  |  | -                //    else if (station_Use == "2735")
 | 
	
		
			
				|  |  | -                //    {
 | 
	
		
			
				|  |  | -                //        wCode = "1S";
 | 
	
		
			
				|  |  | -                //    }
 | 
	
		
			
				|  |  | -                //}
 | 
	
		
			
				|  |  | +                    if ((wCode == "1N" && sameSideTaskNum <= taskInfoCount_1N) || (wCode == "1S" && sameSideTaskNum <= taskInfoCount_1S) ||
 | 
	
		
			
				|  |  | +                        (wCode == "2N" && sameSideTaskNum <= taskInfoCount_2N) || (wCode == "2S" && sameSideTaskNum <= taskInfoCount_2S))
 | 
	
		
			
				|  |  | +                    {                        
 | 
	
		
			
				|  |  | +                        if (wCode == "1N")
 | 
	
		
			
				|  |  | +                        {
 | 
	
		
			
				|  |  | +                            if (count_1S > count_2N && count_1S > count_2S)
 | 
	
		
			
				|  |  | +                            {
 | 
	
		
			
				|  |  | +                                wCode = (taskInfoCount_1S < sameSideTaskNum) ? "1S" : (taskInfoCount_2N < sameSideTaskNum ? "2N" : "2S");                                                           
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                            else if (count_2N > count_1S && count_2N > count_2S)
 | 
	
		
			
				|  |  | +                            {
 | 
	
		
			
				|  |  | +                                wCode = (taskInfoCount_2N < sameSideTaskNum) ? "2N" : (taskInfoCount_1S < sameSideTaskNum ? "1S" : "2S");
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                            else if (count_2S > count_1S && count_2S > count_2N)
 | 
	
		
			
				|  |  | +                            {
 | 
	
		
			
				|  |  | +                                wCode = (taskInfoCount_2S < sameSideTaskNum) ? "2S" : (taskInfoCount_1S < sameSideTaskNum ? "1S" : "2N");
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                        else if (wCode == "1S")
 | 
	
		
			
				|  |  | +                        {
 | 
	
		
			
				|  |  | +                            if (count_1N > count_2N && count_1N > count_2S && taskInfoCount_1N < sameSideTaskNum)
 | 
	
		
			
				|  |  | +                            {
 | 
	
		
			
				|  |  | +                                wCode = (taskInfoCount_1N < sameSideTaskNum) ? "1N" : (taskInfoCount_2N < sameSideTaskNum ? "2N" : "2S");
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                            else if (count_2N > count_1N && count_2N > count_2S && taskInfoCount_2N < sameSideTaskNum)
 | 
	
		
			
				|  |  | +                            {
 | 
	
		
			
				|  |  | +                                wCode = (taskInfoCount_2N < sameSideTaskNum) ? "2N" : (taskInfoCount_1N < sameSideTaskNum ? "1N" : "2S");
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                            else if (count_2S > count_1N && count_2S > count_2N && taskInfoCount_2S < sameSideTaskNum)
 | 
	
		
			
				|  |  | +                            {
 | 
	
		
			
				|  |  | +                                wCode = (taskInfoCount_2S < sameSideTaskNum) ? "2S" : (taskInfoCount_1N < sameSideTaskNum ? "1N" : "2N");
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                        else if (wCode == "2N")
 | 
	
		
			
				|  |  | +                        {
 | 
	
		
			
				|  |  | +                            if (count_2S > count_1N && count_2S > count_1S && taskInfoCount_2S < sameSideTaskNum)
 | 
	
		
			
				|  |  | +                            {
 | 
	
		
			
				|  |  | +                                wCode = (taskInfoCount_2S < sameSideTaskNum) ? "2S" : (taskInfoCount_1N < sameSideTaskNum ? "1N" : "1S");
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                            else if (count_1N > count_1S && count_1N > count_2S && taskInfoCount_1N < sameSideTaskNum)
 | 
	
		
			
				|  |  | +                            {
 | 
	
		
			
				|  |  | +                                wCode = (taskInfoCount_1N < sameSideTaskNum) ? "1N" : (taskInfoCount_1S < sameSideTaskNum ? "1S" : "2S");
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                            else if (count_1S > count_1N && count_1S > count_2S && taskInfoCount_1S < sameSideTaskNum)
 | 
	
		
			
				|  |  | +                            {
 | 
	
		
			
				|  |  | +                                wCode = (taskInfoCount_1S < sameSideTaskNum) ? "1S" : (taskInfoCount_2N < sameSideTaskNum ? "1N" : "2S");
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                        else if (wCode == "2S")
 | 
	
		
			
				|  |  | +                        {
 | 
	
		
			
				|  |  | +                            if (count_2N > count_1S && count_2N > count_1N && taskInfoCount_2N < sameSideTaskNum)
 | 
	
		
			
				|  |  | +                            {
 | 
	
		
			
				|  |  | +                                wCode = (taskInfoCount_2N < sameSideTaskNum) ? "2N" : (taskInfoCount_1N < sameSideTaskNum ? "1N" : "1S");
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                            else if (count_1N > count_1S && count_1N > count_2N && taskInfoCount_1N < sameSideTaskNum)
 | 
	
		
			
				|  |  | +                            {
 | 
	
		
			
				|  |  | +                                wCode = (taskInfoCount_1N < sameSideTaskNum) ? "1N" : (taskInfoCount_1S < sameSideTaskNum ? "1S" : "2N");
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                            else if (count_1S > count_1N && count_1S > count_2N && taskInfoCount_1S < sameSideTaskNum)
 | 
	
		
			
				|  |  | +                            {
 | 
	
		
			
				|  |  | +                                wCode = (taskInfoCount_1S < sameSideTaskNum) ? "1S" : (taskInfoCount_2N < sameSideTaskNum ? "1N" : "2N");
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }                           
 | 
	
		
			
				|  |  | +                                   
 | 
	
		
			
				|  |  |                  //创建入库记录
 | 
	
		
			
				|  |  |                  var createStockInWcsTaskReqest = new FJCreateStockInWcsTaskRequest
 | 
	
		
			
				|  |  |                  {
 | 
	
	
		
			
				|  | @@ -1111,7 +1136,7 @@ namespace wms.service.Service
 | 
	
		
			
				|  |  |                      Type = TaskType.EnterDepot,
 | 
	
		
			
				|  |  |                      DocCode = "",
 | 
	
		
			
				|  |  |                      WorkBench = task.WorkBench,
 | 
	
		
			
				|  |  | -                    WarehouseCode = wCode /*(count_1N <= count_2N) ? "1N" : "2N"*/
 | 
	
		
			
				|  |  | +                    WarehouseCode = wCode
 | 
	
		
			
				|  |  |                  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  //下发wcs任务 - 分解方法
 | 
	
	
		
			
				|  | @@ -1134,7 +1159,6 @@ namespace wms.service.Service
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  return res;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |              res.ResCode = ResponseStatusCodeEnum.Sucess.GetHashCode();
 | 
	
		
			
				|  |  |              res.ResMsg = ResponseStatusCodeEnum.Sucess.ToString();
 | 
	
		
			
				|  |  |              return res;
 |