Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
@@ -743,19 +743,22 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
||||
for (int carry_mat_index = 0; carry_mat_index < carry_mats.Count; carry_mat_index++)
|
||||
{
|
||||
var carry_mat = carry_mats[carry_mat_index];
|
||||
bool isexists = false;
|
||||
foreach (var basRegionMat in basRegionMats)
|
||||
{
|
||||
if (!carry_mat.category_list.Contains(basRegionMat.category))
|
||||
{
|
||||
carry_mats.RemoveAt(carry_mat_index); carry_mat_index--;
|
||||
}
|
||||
else
|
||||
if (carry_mat.category_list.Contains(basRegionMat.category))
|
||||
{
|
||||
carry_mat.category = basRegionMat.category;
|
||||
carry_mat.region_id = basRegionMat.region_id;
|
||||
carry_mat.region_code = basRegionMat.region_code;
|
||||
isexists = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!isexists)
|
||||
{
|
||||
carry_mats.RemoveAt(carry_mat_index); carry_mat_index--;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
@@ -767,7 +770,7 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
||||
List<BasLocation> endLocations = new List<BasLocation>();
|
||||
|
||||
// 小件物料入外协存储区
|
||||
var carry_mat = carry_mats.Where(r => r.carry_id == wmsCarryH.id).First();
|
||||
var carry_mat = carry_mats.Where(r => r.carry_id == wmsCarryH.id).FirstOrDefault();
|
||||
if (carry_mat != null && !string.IsNullOrEmpty(carry_mat.category))
|
||||
{
|
||||
inStockStrategyInput = new() { warehouse_id = "1", Size = 1, passage = startlocation.passage, AvoidBusyPassage = true, Region_id = carry_mat.region_id, PolicyCode = WmsWareHouseConst.POLICY_YCLINSTOCK };
|
||||
|
||||
@@ -775,7 +775,7 @@ namespace Tnb.WarehouseMgr
|
||||
{
|
||||
decimal? needOut = input.needOut;
|
||||
int endlocation_index = 0;
|
||||
BasLocation endlocation_ssx = null;
|
||||
BasLocation endlocation_ssx2 = null;
|
||||
|
||||
for (int i = 0; i < itemsASC.Count; i++)
|
||||
{
|
||||
@@ -790,7 +790,7 @@ namespace Tnb.WarehouseMgr
|
||||
// 每6个重新获取一次终点
|
||||
if (i % move_num == 0)
|
||||
{
|
||||
endlocation_ssx = await cyDb.Queryable<BasLocation>().Where(r => input.endlocations.Contains(r.id)).OrderBy("is_lock, task_nums, location_code").FirstAsync();
|
||||
endlocation_ssx2 = await cyDb.Queryable<BasLocation>().Where(r => input.endlocations.Contains(r.id)).OrderBy("is_lock, task_nums, location_code").FirstAsync();
|
||||
}
|
||||
|
||||
// 查找是否有一个料箱可以正好满足剩余需求数量(目前只做这个额外判断,其它情形不考虑)
|
||||
@@ -803,9 +803,9 @@ namespace Tnb.WarehouseMgr
|
||||
needOut -= _wmsCarryCode.codeqty;
|
||||
WmsCarryH _wmsCarryH = itemsASC[j].wmsCarryH;
|
||||
|
||||
await cyDb.Updateable<BasLocation>().SetColumns(it => it.task_nums == it.task_nums + 1).Where(it => endlocation_ssx.id == it.id).ExecuteCommandAsync();
|
||||
await cyDb.Updateable<BasLocation>().SetColumns(it => it.task_nums == it.task_nums + 1).Where(it => endlocation_ssx2.id == it.id).ExecuteCommandAsync();
|
||||
|
||||
carrysASC.Add(new Tuple<WmsCarryH, decimal, BasLocation>(_wmsCarryH, _wmsCarryCode.codeqty, endlocation_ssx));
|
||||
carrysASC.Add(new Tuple<WmsCarryH, decimal, BasLocation>(_wmsCarryH, _wmsCarryCode.codeqty, endlocation_ssx2));
|
||||
|
||||
isFind = true;
|
||||
break;
|
||||
@@ -818,9 +818,9 @@ namespace Tnb.WarehouseMgr
|
||||
// 目前只支持一个料箱只有一个物料
|
||||
needOut -= wmsCarryCode.codeqty;
|
||||
|
||||
await cyDb.Updateable<BasLocation>().SetColumns(it => it.task_nums == it.task_nums + 1).Where(it => endlocation_ssx.id == it.id).ExecuteCommandAsync();
|
||||
await cyDb.Updateable<BasLocation>().SetColumns(it => it.task_nums == it.task_nums + 1).Where(it => endlocation_ssx2.id == it.id).ExecuteCommandAsync();
|
||||
|
||||
carrysASC.Add(new Tuple<WmsCarryH, decimal, BasLocation>(wmsCarryH, wmsCarryCode.codeqty, endlocation_ssx));
|
||||
carrysASC.Add(new Tuple<WmsCarryH, decimal, BasLocation>(wmsCarryH, wmsCarryCode.codeqty, endlocation_ssx2));
|
||||
}
|
||||
|
||||
if (needOut > 0)
|
||||
|
||||
@@ -72,7 +72,8 @@ namespace Tnb.WarehouseMgr
|
||||
public static SemaphoreSlim s_taskDistributeYCL2ZCC = new(1);
|
||||
public static SemaphoreSlim s_taskDistributeZCCToYCL = new(1);
|
||||
|
||||
public static string[] YCLCKPowerRole = new string[2] { "37184163262485", "37183913754133" };
|
||||
// 1.注塑领料工权限 2.注塑领班权限 3.挤出领料工权限 4.挤出领班权限
|
||||
public static string[] YCLCKPowerRole = new string[4] { "37184163262485", "37183913754133", "37184764210965", "37184773840661" };
|
||||
|
||||
public WmsMaterialTransferService(
|
||||
ISqlSugarRepository<WmsCarryH> repository,
|
||||
@@ -1361,8 +1362,8 @@ namespace Tnb.WarehouseMgr
|
||||
}
|
||||
if (wmsMaterialTransfer.status != WmsWareHouseConst.BILLSTATUS_ADD_ID)
|
||||
{
|
||||
Logger.LogWarning($@"当前转库单状态为{wmsMaterialTransfer.status},不能下发中储仓下发到二楼暂存仓任务!");
|
||||
throw new AppFriendlyException($@"当前转库单状态为{wmsMaterialTransfer.status},不能下发中储仓下发到二楼暂存仓任务!", 500);
|
||||
Logger.LogWarning($@"当前转库单不是新增状态,不能下发中储仓下发到二楼暂存仓任务!");
|
||||
throw new AppFriendlyException($@"当前转库单不是新增状态,不能下发中储仓下发到二楼暂存仓任务!", 500);
|
||||
}
|
||||
|
||||
List<WmsMaterialTransferD> wmsMaterialTransferds = _db.Queryable<WmsMaterialTransferD>().Where(r => r.bill_id == input.source_id).ToList();
|
||||
@@ -1385,11 +1386,13 @@ namespace Tnb.WarehouseMgr
|
||||
// throw new AppFriendlyException($@"转库单{wmsMaterialTransfer.bill_code}表体存在物料和批号重复的明细!", 500);
|
||||
//}
|
||||
|
||||
// 转库单载具子表
|
||||
List<WmsMaterialTransferCarry> wmsMaterialTransferCarrys = new List<WmsMaterialTransferCarry>();
|
||||
await _db.Ado.BeginTranAsync();
|
||||
|
||||
foreach (WmsMaterialTransferD wmsMaterialTransferD in wmsMaterialTransferds)
|
||||
{
|
||||
// 转库单载具子表
|
||||
List<WmsMaterialTransferCarry> wmsMaterialTransferCarrys = new List<WmsMaterialTransferCarry>();
|
||||
|
||||
// 需要转库数量
|
||||
decimal? needOut = wmsMaterialTransferD.qty;
|
||||
|
||||
@@ -1401,7 +1404,8 @@ namespace Tnb.WarehouseMgr
|
||||
code_batch = wmsMaterialTransferD.code_batch,
|
||||
needOut = needOut,
|
||||
material_code = wmsMaterialTransferD.material_code,
|
||||
endlocations = new string[2] { WmsWareHouseConst.ZZCSSX121009, WmsWareHouseConst.ZZCSSX121010 }
|
||||
endlocations = new string[2] { WmsWareHouseConst.ZZCSSX121009, WmsWareHouseConst.ZZCSSX121010 },
|
||||
dbConn = _db
|
||||
};
|
||||
|
||||
List<Tuple<WmsCarryH, decimal, BasLocation>>? carrys = await _wareHouseService.OutStockStrategyZCC2Floor2(OutStockStrategyInput);
|
||||
@@ -1429,50 +1433,46 @@ namespace Tnb.WarehouseMgr
|
||||
|
||||
await _db.Updateable<WmsCarryH>().SetColumns(r => r.work_station == wmsMaterialTransferD.station_code).Where(r => r.id == wmsCarryH.id).ExecuteCommandAsync();
|
||||
}
|
||||
}
|
||||
|
||||
await _db.Ado.BeginTranAsync();
|
||||
|
||||
await _db.Updateable<WmsMaterialTransfer>().SetColumns(r => new WmsMaterialTransfer
|
||||
{
|
||||
status = WmsWareHouseConst.BILLSTATUS_ON_ID,
|
||||
carry_count = wmsMaterialTransferCarrys.Count,
|
||||
remainbindracknum = wmsMaterialTransferCarrys.Count
|
||||
}).Where(r => r.id == input.source_id).ExecuteCommandAsync();
|
||||
Logger.LogInformation($"【DistributeToZCC】更新转库单{wmsMaterialTransfer.bill_code}主表的数据");
|
||||
|
||||
|
||||
foreach (WmsMaterialTransferCarry wmsMaterialTransferCarry in wmsMaterialTransferCarrys)
|
||||
{
|
||||
CommonCreatePretaskInput commonCreatePretaskInput = new CommonCreatePretaskInput();
|
||||
commonCreatePretaskInput.startlocation_id = wmsMaterialTransferCarry.startlocation_id;
|
||||
commonCreatePretaskInput.endlocation_id = wmsMaterialTransferCarry.endlocation_id;
|
||||
commonCreatePretaskInput.carry_id = wmsMaterialTransferCarry.carry_id;
|
||||
commonCreatePretaskInput.carry_code = wmsMaterialTransferCarry.carry_code;
|
||||
commonCreatePretaskInput.task_type = WmsWareHouseConst.WMS_PRETASK_OUTSTOCK_TYPE_ID;
|
||||
commonCreatePretaskInput.biz_type = WmsWareHouseConst.BIZTYPE_WMSMATERIALTRANSFER_ID;
|
||||
commonCreatePretaskInput.source_id = wmsMaterialTransferCarry.mat_bill_id;
|
||||
commonCreatePretaskInput.isExcuteMission = false;
|
||||
|
||||
var res = await _wareHouseService.CommonCreatePretask(commonCreatePretaskInput);
|
||||
if (res.code != JNPF.Common.Enums.HttpStatusCode.OK)
|
||||
await _db.Updateable<WmsMaterialTransfer>().SetColumns(r => new WmsMaterialTransfer
|
||||
{
|
||||
Logger.LogInformation($"【DistributeToZCC生成预任务失败 载具 {wmsMaterialTransferCarry.carry_code}");
|
||||
throw new AppFriendlyException($"生成预任务失败 载具 {wmsMaterialTransferCarry.carry_code}", 500);
|
||||
status = WmsWareHouseConst.BILLSTATUS_ON_ID,
|
||||
carry_count = (r.carry_count == null ? 0 : r.carry_count) + wmsMaterialTransferCarrys.Count,
|
||||
remainbindracknum = (r.remainbindracknum == null ? 0 : r.remainbindracknum) + wmsMaterialTransferCarrys.Count
|
||||
}).Where(r => r.id == input.source_id).ExecuteCommandAsync();
|
||||
Logger.LogInformation($"【DistributeToZCC】更新转库单{wmsMaterialTransfer.bill_code}主表的数据");
|
||||
|
||||
foreach (WmsMaterialTransferCarry wmsMaterialTransferCarry in wmsMaterialTransferCarrys)
|
||||
{
|
||||
CommonCreatePretaskInput commonCreatePretaskInput = new CommonCreatePretaskInput();
|
||||
commonCreatePretaskInput.startlocation_id = wmsMaterialTransferCarry.startlocation_id;
|
||||
commonCreatePretaskInput.endlocation_id = wmsMaterialTransferCarry.endlocation_id;
|
||||
commonCreatePretaskInput.carry_id = wmsMaterialTransferCarry.carry_id;
|
||||
commonCreatePretaskInput.carry_code = wmsMaterialTransferCarry.carry_code;
|
||||
commonCreatePretaskInput.task_type = WmsWareHouseConst.WMS_PRETASK_OUTSTOCK_TYPE_ID;
|
||||
commonCreatePretaskInput.biz_type = WmsWareHouseConst.BIZTYPE_WMSMATERIALTRANSFER_ID;
|
||||
commonCreatePretaskInput.source_id = wmsMaterialTransferCarry.mat_bill_id;
|
||||
commonCreatePretaskInput.isExcuteMission = false;
|
||||
|
||||
var res = await _wareHouseService.CommonCreatePretask(commonCreatePretaskInput, _db);
|
||||
if (res.code != JNPF.Common.Enums.HttpStatusCode.OK)
|
||||
{
|
||||
Logger.LogInformation($"【DistributeToZCC】生成预任务失败 载具 {wmsMaterialTransferCarry.carry_code}");
|
||||
throw new AppFriendlyException($"生成预任务失败 载具 {wmsMaterialTransferCarry.carry_code}", 500);
|
||||
}
|
||||
JObject keyValuePairs = JObject.Parse(res.data.ToString());
|
||||
JArray array = JArray.Parse(keyValuePairs["pretaskids"].ToString());
|
||||
wmsMaterialTransferCarry.pretask_id = array[0].ToString();
|
||||
|
||||
await _db.Updateable<WmsMaterialTransferD>().SetColumns(r => r.yxfqty == r.yxfqty + wmsMaterialTransferCarry.qty).Where(r => r.id == wmsMaterialTransferCarry.mat_bill_id).ExecuteCommandAsync();
|
||||
}
|
||||
JObject keyValuePairs = JObject.Parse(res.data.ToString());
|
||||
JArray array = JArray.Parse(keyValuePairs["pretaskids"].ToString());
|
||||
wmsMaterialTransferCarry.pretask_id = array[0].ToString();
|
||||
|
||||
await _db.Updateable<WmsMaterialTransferD>().SetColumns(r => r.yxfqty == r.yxfqty + wmsMaterialTransferCarry.qty).Where(r => r.id == wmsMaterialTransferCarry.mat_bill_id).ExecuteCommandAsync();
|
||||
|
||||
await _db.Insertable(wmsMaterialTransferCarrys).ExecuteCommandAsync();
|
||||
Logger.LogInformation($"【DistributeToZCC】插入转库单{wmsMaterialTransfer.bill_code}载具表的数据");
|
||||
|
||||
Logger.LogInformation($"转库单{wmsMaterialTransfer.bill_code} 行号 {wmsMaterialTransferD.lineno}预任务{wmsMaterialTransferCarrys.Count}条全部生成成功");
|
||||
}
|
||||
|
||||
await _db.Insertable(wmsMaterialTransferCarrys).ExecuteCommandAsync();
|
||||
Logger.LogInformation($"【DistributeToZCC】插入转库单{wmsMaterialTransfer.bill_code}载具表的数据");
|
||||
|
||||
Logger.LogInformation($"转库单{wmsMaterialTransfer.bill_code}预任务{wmsMaterialTransferCarrys.Count}条全部生成成功");
|
||||
|
||||
|
||||
await _db.Ado.CommitTranAsync();
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -1567,8 +1567,8 @@ namespace Tnb.WarehouseMgr
|
||||
await db.Updateable<WmsMaterialTransfer>().SetColumns(r => new WmsMaterialTransfer
|
||||
{
|
||||
status = WmsWareHouseConst.BILLSTATUS_ON_ID,
|
||||
carry_count = wmsMaterialTransferCarrys.Count,
|
||||
remainbindracknum = wmsMaterialTransferCarrys.Count
|
||||
carry_count = (r.carry_count == null ? 0 : r.carry_count) + wmsMaterialTransferCarrys.Count,
|
||||
remainbindracknum = (r.remainbindracknum == null ? 0 : r.remainbindracknum) + wmsMaterialTransferCarrys.Count
|
||||
}).Where(r => r.id == input.source_id).ExecuteCommandAsync();
|
||||
Logger.LogInformation($"【DistributeToZCC】更新转库单{wmsMaterialTransfer.bill_code}主表的数据");
|
||||
|
||||
@@ -1585,7 +1585,7 @@ namespace Tnb.WarehouseMgr
|
||||
commonCreatePretaskInput.source_id = wmsMaterialTransferCarry.mat_bill_id;
|
||||
commonCreatePretaskInput.isExcuteMission = false;
|
||||
|
||||
var res = await _wareHouseService.CommonCreatePretask(commonCreatePretaskInput);
|
||||
var res = await _wareHouseService.CommonCreatePretask(commonCreatePretaskInput, _db);
|
||||
if (res.code != JNPF.Common.Enums.HttpStatusCode.OK)
|
||||
{
|
||||
Logger.LogInformation($"【DistributeToZCC生成预任务失败 载具 {wmsMaterialTransferCarry.carry_code}");
|
||||
|
||||
@@ -466,7 +466,7 @@ namespace Tnb.WarehouseMgr
|
||||
};
|
||||
var instockDs = new List<WmsInstockD>();
|
||||
var instockCodes = new List<WmsInstockCode>();
|
||||
List<WmsCarryCode> wmsCarryCodes = await _db.Queryable<WmsCarryCode>().Where(r => r.carry_id == carry.id).ToListAsync();
|
||||
List<WmsCarryCode> wmsCarryCodes = await _dbScanInStockByRedis.Queryable<WmsCarryCode>().Where(r => r.carry_id == carry.id).ToListAsync();
|
||||
|
||||
foreach (var r in wmsCarryCodes.GroupBy(g => new { g.material_id, g.code_batch }))
|
||||
{
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using JNPF.Common.Core.Manager;
|
||||
using System.Collections;
|
||||
using JNPF.Common.Core.Manager;
|
||||
using JNPF.Common.Dtos.VisualDev;
|
||||
using JNPF.Common.Enums;
|
||||
using JNPF.Common.Extension;
|
||||
@@ -6,6 +7,7 @@ using JNPF.Common.Filter;
|
||||
using JNPF.Common.Security;
|
||||
using JNPF.EventBus;
|
||||
using JNPF.FriendlyException;
|
||||
using JNPF.Systems.Entitys.System;
|
||||
using JNPF.Systems.Interfaces.System;
|
||||
using JNPF.VisualDev;
|
||||
using JNPF.VisualDev.Entitys;
|
||||
@@ -106,6 +108,11 @@ namespace Tnb.WarehouseMgr
|
||||
input.sidx = input.sidx.Replace("create_time", "a.create_time").Replace("erp_bill_code", "e.erp_bill_code");
|
||||
|
||||
}
|
||||
|
||||
Dictionary<string, object> status_dic = await _db.Queryable<DictionaryTypeEntity>()
|
||||
.InnerJoin<DictionaryDataEntity>((a, b) => a.Id == b.DictionaryTypeId)
|
||||
.Where((a, b) => a.FullName == "单据状态").Select((a, b) => b).ToDictionaryAsync(k => k.Id, v => v.FullName);
|
||||
|
||||
SqlSugarPagedList<WmsSortingtask> result = await _db.Queryable<WmsSortingtask>()
|
||||
.InnerJoin<WmsCarryCode>((a, b) => a.carry_id == b.carry_id)
|
||||
.InnerJoin<BasMaterial>((a, b, c) => b.material_id == c.id)
|
||||
|
||||
Reference in New Issue
Block a user