|
@@ -823,8 +823,8 @@ namespace wms.service.Service
|
|
var res = new SRes { ResCode = ResponseStatusCodeEnum.Fail.GetHashCode(), ResMsg = "失败" };
|
|
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)
|
|
var sameSideTaskNum = Convert.ToInt32(_sysconfigrepository.AsQueryable().With(SqlWith.NoLock)
|
|
.First(x => x.Code == "SameSideTaskInNum").SContent);
|
|
.First(x => x.Code == "SameSideTaskInNum").SContent);
|
|
//var station_Use = _sysconfigrepository.AsQueryable().With(SqlWith.NoLock)
|
|
//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_1S = invnowCount_1S - taskInfoCount_1S;
|
|
var count_2S = invnowCount_2S - taskInfoCount_2S;
|
|
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
|
|
var createStockInWcsTaskReqest = new FJCreateStockInWcsTaskRequest
|
|
{
|
|
{
|
|
@@ -1111,7 +1136,7 @@ namespace wms.service.Service
|
|
Type = TaskType.EnterDepot,
|
|
Type = TaskType.EnterDepot,
|
|
DocCode = "",
|
|
DocCode = "",
|
|
WorkBench = task.WorkBench,
|
|
WorkBench = task.WorkBench,
|
|
- WarehouseCode = wCode /*(count_1N <= count_2N) ? "1N" : "2N"*/
|
|
|
|
|
|
+ WarehouseCode = wCode
|
|
};
|
|
};
|
|
|
|
|
|
//下发wcs任务 - 分解方法
|
|
//下发wcs任务 - 分解方法
|
|
@@ -1134,7 +1159,6 @@ namespace wms.service.Service
|
|
|
|
|
|
return res;
|
|
return res;
|
|
}
|
|
}
|
|
-
|
|
|
|
res.ResCode = ResponseStatusCodeEnum.Sucess.GetHashCode();
|
|
res.ResCode = ResponseStatusCodeEnum.Sucess.GetHashCode();
|
|
res.ResMsg = ResponseStatusCodeEnum.Sucess.ToString();
|
|
res.ResMsg = ResponseStatusCodeEnum.Sucess.ToString();
|
|
return res;
|
|
return res;
|