电梯日志优化erp同步调整

This commit is contained in:
2024-08-23 16:04:58 +08:00
parent 39fac9920c
commit fd150f1804
11 changed files with 173 additions and 82 deletions

View File

@@ -473,7 +473,7 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
input.data.Add("material_id", WmsCarryCode.material_id); input.data.Add("material_id", WmsCarryCode.material_id);
input.data.Add("物料条码", WmsCarryCode.barcode); input.data.Add("物料条码", WmsCarryCode.barcode);
input.data.Add("id", null); input.data.Add("id", null);
_wmsPDAScanInStock.ScanInStockByRedis(input).Wait(); _wmsPDAScanInStock.ScanInStockByRedis(input, db_Scantimer).Wait();
} }
else else
{ {
@@ -484,10 +484,19 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
} }
} }
} }
catch (ObjectDisposedException ex)
{
LoggerBGWCarrySupplement.LogError($"【ScanInStock】 数据库连接异常:{ex.Message}");
LoggerBGWCarrySupplement.LogError($"【ScanInStock】 数据库连接异常:{ex.StackTrace}");
if (ex.Source == "Npgsql")
db_Scantimer = _repository.AsSugarClient().CopyNew();
}
catch (Exception ex) catch (Exception ex)
{ {
Console.WriteLine("【ScanInStock】" + ex.Message); Console.WriteLine("【ScanInStock】" + ex.Message);
LoggerBGWCarrySupplement.LogError($"【ScanInStock】 八工位扫到码发送入库请求发生异常:{ex}"); LoggerBGWCarrySupplement.LogError($"【ScanInStock】 八工位扫到码发送入库请求发生异常:{ex}");
// 数据库连接断开时会报错
try { await db_Scantimer.Ado.RollbackTranAsync(); } catch { };
} }
finally finally
{ {
@@ -1949,8 +1958,9 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
wmsDistaskHs[0].device_id = e.device_id; wmsDistaskHs[0].device_id = e.device_id;
wmsDistaskHs[1].device_id = e.device_id; wmsDistaskHs[1].device_id = e.device_id;
} }
LoggerElevatorTask.Information($"【GenTaskExecute】呼叫电梯"); LoggerElevatorTask.Information($"【GenTaskExecute】呼叫电梯 {e.elevator_code}");
await _wareHouseService.ExecuteTargetFloorTask(wmsDistaskHs); await _wareHouseService.ExecuteTargetFloorTask(wmsDistaskHs);
LoggerElevatorTask.Information($"【GenTaskExecute】呼叫电梯 {e.elevator_code}执行完成");
} }
// 一托货 // 一托货
else if (group.Count() == 1) else if (group.Count() == 1)
@@ -1964,8 +1974,9 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
{ {
wmsDistaskHs[0].device_id = e.device_id; wmsDistaskHs[0].device_id = e.device_id;
} }
LoggerElevatorTask.Information($"【GenTaskExecute】呼叫电梯"); LoggerElevatorTask.Information($"【GenTaskExecute】呼叫电梯 {e.elevator_code}");
await _wareHouseService.ExecuteTargetFloorTask(wmsDistaskHs); await _wareHouseService.ExecuteTargetFloorTask(wmsDistaskHs);
LoggerElevatorTask.Information($"【GenTaskExecute】呼叫电梯 {e.elevator_code}执行完成");
} }
} }
else else
@@ -1980,8 +1991,9 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
{ {
wmsDistaskHs[0].device_id = e.device_id; wmsDistaskHs[0].device_id = e.device_id;
} }
LoggerElevatorTask.Information($"【GenTaskExecute】呼叫电梯"); LoggerElevatorTask.Information($"【GenTaskExecute】呼叫电梯 {e.elevator_code}");
await _wareHouseService.ExecuteTargetFloorTask(wmsDistaskHs); await _wareHouseService.ExecuteTargetFloorTask(wmsDistaskHs);
LoggerElevatorTask.Information($"【GenTaskExecute】呼叫电梯 {e.elevator_code}执行完成");
} }
} }

View File

@@ -24,11 +24,6 @@ namespace Tnb.WarehouseMgr.Entities.Dto.ErpInputs
/// </summary> /// </summary>
public string? biller { get; set; } public string? biller { get; set; }
/// <summary>
/// 出库仓库
/// </summary>
public string? warehouse_outstock { get; set; }
/// <summary> /// <summary>
/// 入库组织编号 /// 入库组织编号
/// </summary> /// </summary>
@@ -88,5 +83,11 @@ namespace Tnb.WarehouseMgr.Entities.Dto.ErpInputs
/// 子表主键 /// 子表主键
/// </summary> /// </summary>
public string erp_line_pk { get; set; } public string erp_line_pk { get; set; }
/// <summary>
/// 出库仓库
/// </summary>
public string? warehouse_outstock { get; set; }
} }
} }

View File

@@ -99,4 +99,9 @@ public partial class WmsRawmatTransferoutstockD : BaseEntity<string>
/// </summary> /// </summary>
public string? lineno { get; set; } public string? lineno { get; set; }
/// <summary>
/// erp仓库类型
/// </summary>
public string erp_wh_type { get; set; }
} }

View File

@@ -125,8 +125,13 @@ public partial class WmsRawmatTransferoutstockH : BaseEntity<string>
public string? transfer_order_id { get; set; } public string? transfer_order_id { get; set; }
/// <summary> /// <summary>
/// erp仓库类型 /// 入库组织id
/// </summary> /// </summary>
public string erp_wh_type { get; set; } public string? instockorg_id { get; set; }
/// <summary>
/// 入库组织编号
/// </summary>
public string? instockorg_code { get; set; }
} }

View File

@@ -94,4 +94,9 @@ public partial class WmsTransferOrderD : BaseEntity<string>
/// </summary> /// </summary>
public string? lineno { get; set; } public string? lineno { get; set; }
/// <summary>
/// erp仓库类型
/// </summary>
public string erp_wh_type { get; set; }
} }

View File

@@ -88,4 +88,14 @@ public partial class WmsTransferOrderH : BaseEntity<string>
/// erp仓库类型 /// erp仓库类型
/// </summary> /// </summary>
public string erp_wh_type { get; set; } public string erp_wh_type { get; set; }
/// <summary>
/// 入库组织id
/// </summary>
public string? instockorg_id { get; set; }
/// <summary>
/// 入库组织编号
/// </summary>
public string? instockorg_code { get; set; }
} }

View File

@@ -144,4 +144,9 @@ public partial class WmsTransferOutstockD : BaseEntity<string>
/// </summary> /// </summary>
public string? lineno { get; set; } public string? lineno { get; set; }
/// <summary>
/// erp仓库类型
/// </summary>
public string erp_wh_type { get; set; }
} }

View File

@@ -110,7 +110,12 @@ public partial class WmsTransferOutstockH : BaseEntity<string>
public string? transfer_order_id { get; set; } public string? transfer_order_id { get; set; }
/// <summary> /// <summary>
/// erp仓库类型 /// 入库组织id
/// </summary> /// </summary>
public string erp_wh_type { get; set; } public string? instockorg_id { get; set; }
/// <summary>
/// 入库组织编号
/// </summary>
public string? instockorg_code { get; set; }
} }

View File

@@ -1,5 +1,4 @@
using System.Collections.Generic; 
using System.Linq;
using System.Text; using System.Text;
using Aop.Api.Domain; using Aop.Api.Domain;
using JNPF.Common.Enums; using JNPF.Common.Enums;
@@ -1088,7 +1087,18 @@ namespace Tnb.WarehouseMgr
wmsRawmatTransferinstockH.erp_bill_code = input.transfer_order; wmsRawmatTransferinstockH.erp_bill_code = input.transfer_order;
wmsRawmatTransferinstockH.contact_person = input.contact_person; wmsRawmatTransferinstockH.contact_person = input.contact_person;
wmsRawmatTransferinstockH.tel = input.tel; wmsRawmatTransferinstockH.tel = input.tel;
wmsRawmatTransferinstockH.outstockorg_code = input.outstockorg_code;
var org_erpExtendField = await db.Queryable<ErpExtendField>().Where(a => a.pk_org == input.outstockorg_code).FirstAsync();
if (org_erpExtendField != null)
{
wmsRawmatTransferinstockH.outstockorg_id = org_erpExtendField.pk_org_v;
wmsRawmatTransferinstockH.outstockorg_code = org_erpExtendField.pk_org;
}
else
{
_LoggerErp2Mes.LogWarning($@"【TransferOutstock】表头明细中组织{input.outstockorg_code}在wms系统中未找到");
throw new AppFriendlyException($@"表头明细中组织{input.outstockorg_code}在wms系统中未找到", 500);
}
wmsRawmatTransferinstockH.erp_pk = input.erp_pk; wmsRawmatTransferinstockH.erp_pk = input.erp_pk;
wmsRawmatTransferinstockH.create_id = WmsWareHouseConst.ErpUserId; wmsRawmatTransferinstockH.create_id = WmsWareHouseConst.ErpUserId;
wmsRawmatTransferinstockH.create_time = DateTime.Now; wmsRawmatTransferinstockH.create_time = DateTime.Now;
@@ -1146,7 +1156,17 @@ namespace Tnb.WarehouseMgr
wmsTransferInstockH.bill_code = Code; wmsTransferInstockH.bill_code = Code;
wmsTransferInstockH.erp_bill_code = input.transfer_order; wmsTransferInstockH.erp_bill_code = input.transfer_order;
wmsTransferInstockH.outstockorg_code = input.outstockorg_code; var org_erpExtendField = await db.Queryable<ErpExtendField>().Where(a => a.pk_org == input.outstockorg_code).FirstAsync();
if (org_erpExtendField != null)
{
wmsTransferInstockH.outstockorg_id = org_erpExtendField.pk_org_v;
wmsTransferInstockH.outstockorg_code = org_erpExtendField.pk_org;
}
else
{
_LoggerErp2Mes.LogWarning($@"【TransferOutstock】表头明细中组织{input.outstockorg_code}在wms系统中未找到");
throw new AppFriendlyException($@"表头明细中组织{input.outstockorg_code}在wms系统中未找到", 500);
}
wmsTransferInstockH.incoming_ware = warehouse_instock.id; wmsTransferInstockH.incoming_ware = warehouse_instock.id;
wmsTransferInstockH.org_id = WmsWareHouseConst.AdministratorOrgId; wmsTransferInstockH.org_id = WmsWareHouseConst.AdministratorOrgId;
wmsTransferInstockH.erp_pk = input.erp_pk; wmsTransferInstockH.erp_pk = input.erp_pk;
@@ -1255,22 +1275,7 @@ namespace Tnb.WarehouseMgr
throw new AppFriendlyException($@"表体存在物料和批号重复的明细!", 500); throw new AppFriendlyException($@"表体存在物料和批号重复的明细!", 500);
} }
WmsErpWarehouserelaH wmsErpWarehouserelaH = await db.Queryable<WmsErpWarehouserelaH>().Where(r => r.erp_warehousecode == input.warehouse_outstock).FirstAsync();
if (wmsErpWarehouserelaH == null)
{
_LoggerErp2Mes.LogWarning($@"【TransferOrder】不存在erp仓库类型{input.warehouse_outstock}对应wms系统的映射关系");
throw new AppFriendlyException($@"不存在erp仓库类型{input.warehouse_outstock}对应wms系统的映射关系", 500);
}
string warehouse_outstock_code = wmsErpWarehouserelaH.wms_warehousecode;
BasWarehouse warehouse_outstock = await db.Queryable<BasWarehouse>().Where(r => r.whcode == warehouse_outstock_code).FirstAsync();
if (warehouse_outstock == null)
{
_LoggerErp2Mes.LogWarning($"【TransferOrder】无法查询到出库仓库{warehouse_outstock_code}的档案记录!");
return await ToApiResult(HttpStatusCode.InternalServerError, $"无法查询到出库仓库{warehouse_outstock_code}的档案记录!");
}
await db.Ado.BeginTranAsync(); await db.Ado.BeginTranAsync();
WmsTransferOrderH wmsTransferOrderH = new WmsTransferOrderH(); WmsTransferOrderH wmsTransferOrderH = new WmsTransferOrderH();
string Code = await _billRuleService.GetBillNumber("WmsTransferOrder"); string Code = await _billRuleService.GetBillNumber("WmsTransferOrder");
@@ -1283,7 +1288,6 @@ namespace Tnb.WarehouseMgr
wmsTransferOrderH.create_id = WmsWareHouseConst.ErpUserId; wmsTransferOrderH.create_id = WmsWareHouseConst.ErpUserId;
wmsTransferOrderH.create_time = DateTime.Now; wmsTransferOrderH.create_time = DateTime.Now;
wmsTransferOrderH.org_id = WmsWareHouseConst.AdministratorOrgId; wmsTransferOrderH.org_id = WmsWareHouseConst.AdministratorOrgId;
wmsTransferOrderH.erp_wh_type = input.warehouse_outstock;
var _erpExtendField = await db.Queryable<ErpExtendField>().InnerJoin<DictionaryDataEntity>((a, b) => a.table_id == b.Id) var _erpExtendField = await db.Queryable<ErpExtendField>().InnerJoin<DictionaryDataEntity>((a, b) => a.table_id == b.Id)
.Where((a, b) => a.transaction_type_id == input.transaction_type).Select((a, b) => b).FirstAsync(); .Where((a, b) => a.transaction_type_id == input.transaction_type).Select((a, b) => b).FirstAsync();
@@ -1322,6 +1326,7 @@ namespace Tnb.WarehouseMgr
wmsTransferOrderD.create_id = WmsWareHouseConst.ErpUserId; wmsTransferOrderD.create_id = WmsWareHouseConst.ErpUserId;
wmsTransferOrderD.create_time = DateTime.Now; wmsTransferOrderD.create_time = DateTime.Now;
wmsTransferOrderD.lineno = detail.lineno; wmsTransferOrderD.lineno = detail.lineno;
wmsTransferOrderD.erp_wh_type = detail.warehouse_outstock;
var material = await db.Queryable<BasMaterial>().Where(p => p.code == detail.material_code).FirstAsync(); var material = await db.Queryable<BasMaterial>().Where(p => p.code == detail.material_code).FirstAsync();
if (material != null) if (material != null)
@@ -1337,7 +1342,37 @@ namespace Tnb.WarehouseMgr
await db.Insertable(wmsTransferOrderDs).ExecuteCommandAsync(); await db.Insertable(wmsTransferOrderDs).ExecuteCommandAsync();
if (warehouse_outstock.id == WmsWareHouseConst.WAREHOUSE_YCL_ID) Dictionary<string, object> dic_WmsErpWarehouseidrelaH = await db.Queryable<WmsErpWarehouserelaH>()
.LeftJoin<BasWarehouse>((a, b) => a.wms_warehousecode == b.whcode)
.Select((a, b) => new
{
a.erp_warehousecode,
b.id,
b.whcode
})
.ToDictionaryAsync(k => k.erp_warehousecode, v => v.id);
foreach (var key in dic_WmsErpWarehouseidrelaH.Keys)
{
if (dic_WmsErpWarehouseidrelaH[key] == null)
{
_LoggerErp2Mes.LogWarning($"【TransferOrder】无法查询到出库仓库{key}的档案记录!");
return await ToApiResult(HttpStatusCode.InternalServerError, $"无法查询到出库仓库{key}的档案记录!");
}
}
Dictionary<string, object> dic_WmsErpWarehousecoderelaH = await db.Queryable<WmsErpWarehouserelaH>()
.LeftJoin<BasWarehouse>((a, b) => a.wms_warehousecode == b.whcode)
.Select((a, b) => new
{
a.erp_warehousecode,
b.id,
b.whcode
})
.ToDictionaryAsync(k => k.erp_warehousecode, v => v.whcode);
List<TransferOrderInputDetail> details_WAREHOUSE_YCL_ID = input.details.Where(r => dic_WmsErpWarehouseidrelaH[r.warehouse_outstock].ToString() == WmsWareHouseConst.WAREHOUSE_YCL_ID).ToList();
List<TransferOrderInputDetail> details_WAREHOUSE_CP_ID = input.details.Where(r => dic_WmsErpWarehouseidrelaH[r.warehouse_outstock].ToString() == WmsWareHouseConst.WAREHOUSE_YCL_ID).ToList();
if (details_WAREHOUSE_YCL_ID.Count > 0)
{ {
WmsRawmatTransferoutstockH wmsRawmatTransferoutstockH = new WmsRawmatTransferoutstockH(); WmsRawmatTransferoutstockH wmsRawmatTransferoutstockH = new WmsRawmatTransferoutstockH();
string code = await _billRuleService.GetBillNumber("RawmatTransferoutstock"); string code = await _billRuleService.GetBillNumber("RawmatTransferoutstock");
@@ -1346,15 +1381,14 @@ namespace Tnb.WarehouseMgr
wmsRawmatTransferoutstockH.create_time = DateTime.Now; wmsRawmatTransferoutstockH.create_time = DateTime.Now;
wmsRawmatTransferoutstockH.biller = input.biller; wmsRawmatTransferoutstockH.biller = input.biller;
wmsRawmatTransferoutstockH.dept_code = input.dept_code; wmsRawmatTransferoutstockH.dept_code = input.dept_code;
wmsRawmatTransferoutstockH.warehouse_code = warehouse_outstock.whcode; wmsRawmatTransferoutstockH.warehouse_code = dic_WmsErpWarehousecoderelaH[details_WAREHOUSE_YCL_ID[0].warehouse_outstock].ToString();
wmsRawmatTransferoutstockH.erp_pk = input.erp_pk; wmsRawmatTransferoutstockH.erp_pk = input.erp_pk;
wmsRawmatTransferoutstockH.transfer_order_id = wmsTransferOrderH.bill_code; wmsRawmatTransferoutstockH.transfer_order_id = wmsTransferOrderH.id;
wmsRawmatTransferoutstockH.issuance_status = "0"; wmsRawmatTransferoutstockH.issuance_status = "0";
wmsRawmatTransferoutstockH.transaction_type = _erpExtendField.EnCode; wmsRawmatTransferoutstockH.transaction_type = _erpExtendField.EnCode;
wmsRawmatTransferoutstockH.org_id = WmsWareHouseConst.AdministratorOrgId; wmsRawmatTransferoutstockH.org_id = WmsWareHouseConst.AdministratorOrgId;
wmsRawmatTransferoutstockH.erp_wh_type = input.warehouse_outstock;
List<WmsRawmatTransferoutstockD> wmsRawmatTransferoutstockDs = new List <WmsRawmatTransferoutstockD>(); List<WmsRawmatTransferoutstockD> wmsRawmatTransferoutstockDs = new List <WmsRawmatTransferoutstockD>();
foreach (var detail in input.details) foreach (var detail in details_WAREHOUSE_YCL_ID)
{ {
WmsRawmatTransferoutstockD wmsRawmatTransferoutstockD = new WmsRawmatTransferoutstockD(); WmsRawmatTransferoutstockD wmsRawmatTransferoutstockD = new WmsRawmatTransferoutstockD();
wmsRawmatTransferoutstockD.bill_id = wmsRawmatTransferoutstockH.id; wmsRawmatTransferoutstockD.bill_id = wmsRawmatTransferoutstockH.id;
@@ -1370,6 +1404,7 @@ namespace Tnb.WarehouseMgr
throw new AppFriendlyException($@"表体明细中单位{detail.unit_code}在wms系统中未找到", 500); throw new AppFriendlyException($@"表体明细中单位{detail.unit_code}在wms系统中未找到", 500);
} }
wmsRawmatTransferoutstockD.erp_wh_type = detail.warehouse_outstock;
wmsRawmatTransferoutstockD.qty = detail.qty; wmsRawmatTransferoutstockD.qty = detail.qty;
wmsRawmatTransferoutstockD.code_batch = detail.code_batch; wmsRawmatTransferoutstockD.code_batch = detail.code_batch;
wmsRawmatTransferoutstockD.erp_line_pk = detail.erp_line_pk; wmsRawmatTransferoutstockD.erp_line_pk = detail.erp_line_pk;
@@ -1392,22 +1427,22 @@ namespace Tnb.WarehouseMgr
await db.Insertable(wmsRawmatTransferoutstockH).ExecuteCommandAsync(); await db.Insertable(wmsRawmatTransferoutstockH).ExecuteCommandAsync();
await db.Insertable(wmsRawmatTransferoutstockDs).ExecuteCommandAsync(); await db.Insertable(wmsRawmatTransferoutstockDs).ExecuteCommandAsync();
} }
else if(warehouse_outstock.id == WmsWareHouseConst.WAREHOUSE_CP_ID) if(details_WAREHOUSE_CP_ID.Count > 0)
{ {
WmsTransferOutstockH wmsTransferOutstockH = new WmsTransferOutstockH(); WmsTransferOutstockH wmsTransferOutstockH = new WmsTransferOutstockH();
string code = await _billRuleService.GetBillNumber("WmsTransferOutstock"); string code = await _billRuleService.GetBillNumber("WmsTransferOutstock");
wmsTransferOutstockH.bill_code = code; wmsTransferOutstockH.bill_code = code;
wmsTransferOutstockH.create_id = WmsWareHouseConst.ErpUserId; wmsTransferOutstockH.create_id = WmsWareHouseConst.ErpUserId;
wmsTransferOutstockH.create_time = DateTime.Now; wmsTransferOutstockH.create_time = DateTime.Now;
wmsTransferOutstockH.warehouse_code = warehouse_outstock.whcode; wmsTransferOutstockH.warehouse_code = dic_WmsErpWarehousecoderelaH[details_WAREHOUSE_CP_ID[0].warehouse_outstock].ToString();
wmsTransferOutstockH.erp_pk = input.erp_pk; wmsTransferOutstockH.erp_pk = input.erp_pk;
wmsTransferOutstockH.transfer_order_id = wmsTransferOrderH.bill_code; wmsTransferOutstockH.transfer_order_id = wmsTransferOrderH.id;
wmsTransferOutstockH.issuance_status = "0"; wmsTransferOutstockH.issuance_status = "0";
wmsTransferOutstockH.transaction_type = _erpExtendField.EnCode; wmsTransferOutstockH.transaction_type = _erpExtendField.EnCode;
wmsTransferOutstockH.org_id = WmsWareHouseConst.AdministratorOrgId; wmsTransferOutstockH.org_id = WmsWareHouseConst.AdministratorOrgId;
wmsTransferOutstockH.erp_wh_type = input.warehouse_outstock;
List<WmsTransferOutstockD> wmsTransferOutstockDs = new List<WmsTransferOutstockD>(); List<WmsTransferOutstockD> wmsTransferOutstockDs = new List<WmsTransferOutstockD>();
foreach (var detail in input.details) foreach (var detail in details_WAREHOUSE_CP_ID)
{ {
WmsTransferOutstockD wmsTransferOutstockD = new WmsTransferOutstockD(); WmsTransferOutstockD wmsTransferOutstockD = new WmsTransferOutstockD();
wmsTransferOutstockD.bill_id = wmsTransferOutstockH.id; wmsTransferOutstockD.bill_id = wmsTransferOutstockH.id;
@@ -1432,6 +1467,7 @@ namespace Tnb.WarehouseMgr
wmsTransferOutstockD.create_id = WmsWareHouseConst.ErpUserId; wmsTransferOutstockD.create_id = WmsWareHouseConst.ErpUserId;
wmsTransferOutstockD.create_time = DateTime.Now; wmsTransferOutstockD.create_time = DateTime.Now;
wmsTransferOutstockD.lineno = detail.lineno; wmsTransferOutstockD.lineno = detail.lineno;
wmsTransferOutstockD.erp_wh_type = detail.warehouse_outstock;
var material = await db.Queryable<BasMaterial>().Where(p => p.code == detail.material_code).FirstAsync(); var material = await db.Queryable<BasMaterial>().Where(p => p.code == detail.material_code).FirstAsync();
if (material != null) if (material != null)

View File

@@ -2228,33 +2228,34 @@ namespace Tnb.WarehouseMgr
int doorStatus = -1; int doorStatus = -1;
bool closeDoorRes = await _elevatorControlService.SendOpenCloseCmd(devName, 4); //向电梯发送前门关门指令 bool closeDoorRes = await _elevatorControlService.SendOpenCloseCmd(devName, 4); //向电梯发送前门关门指令
Logger.Information($"关门结果:{closeDoorRes}"); Logger.Information($"{devName.Match(@"\d+")}#梯 关门结果:{closeDoorRes}");
do do
{ {
doorStatus = await _elevatorControlService.GetTagAsync(devName, ElevatorConsts.DoorStatus); doorStatus = await _elevatorControlService.GetTagAsync(devName, ElevatorConsts.DoorStatus);
Logger.Information($"当前门状态:{doorStatus}"); Logger.Information($"{devName.Match(@"\d+")}#梯 当前门状态:{doorStatus}");
await Task.Delay(1000); await Task.Delay(1000);
} while (doorStatus != 4); } while (doorStatus != 4);
Logger.Information($"当前门状态:{doorStatus}"); Logger.Information($"结束判断 {devName.Match(@"\d+")}#梯 当前门状态:{doorStatus}");
int floor = await GetRealFloor(devName, disTask.end_floor); int floor = await GetRealFloor(devName, disTask.end_floor);
//电梯任务手动执行任务状态上报 //电梯任务手动执行任务状态上报
(int sysStatus, int runStatus, int floorNo, int doorStatus, int agvStatus) tuple = (-1, -1, -1, -1, -1); (int sysStatus, int runStatus, int floorNo, int doorStatus, int agvStatus) tuple = (-1, -1, -1, -1, -1);
tuple = await _elevatorControlService.GetElevatorStatus(devName, tags, CancellationToken.None); tuple = await _elevatorControlService.GetElevatorStatus(devName, tags, CancellationToken.None);
Logger.Information($"目标楼层:{floor} 当前楼层:{tuple.floorNo}"); Logger.Information($"{devName.Match(@"\d+")}#梯 目标楼层:{floor} 当前楼层:{tuple.floorNo}");
Logger.Information($"开始呼梯 {devName}到{floor}"); Logger.Information($"{devName.Match(@"\d+")}#梯 开始呼梯 {devName}到{floor}");
//发送到目标楼的指令 //发送到目标楼的指令
dynamic result = await _elevatorControlService.WriteTagAsync(devName, ElevatorConsts.FloorExecute, floor); dynamic result = await _elevatorControlService.WriteTagAsync(devName, ElevatorConsts.FloorExecute, floor);
do do
{ {
tuple = await _elevatorControlService.GetElevatorStatus(devName, tags, CancellationToken.None); tuple = await _elevatorControlService.GetElevatorStatus(devName, tags, CancellationToken.None);
Logger.Information($"{devName.Match(@"\d+")}#梯 sysStatus:{tuple.sysStatus},runStatus:{tuple.runStatus},当前楼层floorNo:{tuple.floorNo},目标楼层disTask.end_floor={floor}");
await Task.Delay(1000); await Task.Delay(1000);
} while (tuple.sysStatus != 3 || tuple.runStatus != 0 || floor != tuple.floorNo); } while (tuple.sysStatus != 3 || tuple.runStatus != 0 || floor != tuple.floorNo);
Logger.Information($"sysStatus:{tuple.sysStatus},runStatus:{tuple.runStatus},当前楼层floorNo:{tuple.floorNo},目标楼层disTask.end_floor={floor}"); Logger.Information($"结束判断 {devName.Match(@"\d+")}#梯 sysStatus:{tuple.sysStatus},runStatus:{tuple.runStatus},当前楼层floorNo:{tuple.floorNo},目标楼层disTask.end_floor={floor}");
if (tuple.sysStatus.ToEnum<EnumSysStatus>() == EnumSysStatus. && tuple.runStatus.ToEnum<EnumRunStatus>() == EnumRunStatus.) if (tuple.sysStatus.ToEnum<EnumSysStatus>() == EnumSysStatus. && tuple.runStatus.ToEnum<EnumRunStatus>() == EnumRunStatus.)
{ {
@@ -2275,7 +2276,7 @@ namespace Tnb.WarehouseMgr
}; };
await TaskComplate(tcUpInput); await TaskComplate(tcUpInput);
Logger.Information("电梯任务执行完成"); Logger.Information($"{devName.Match(@"\d+")}#梯 电梯任务执行完成");
} }
} }
@@ -2472,34 +2473,36 @@ namespace Tnb.WarehouseMgr
[HttpPost] [HttpPost]
public async Task TaskComplate(TaskCompleUpInput input) public async Task TaskComplate(TaskCompleUpInput input)
{ {
var db = _db.CopyNew();
try try
{ {
Logger.Information($"【TaskComplate】 开始执行TaskComplate"); Logger.Information($"【TaskComplate】 开始执行TaskComplate {JsonConvert.SerializeObject(input)}");
await _db.Ado.BeginTranAsync();
await db.Ado.BeginTranAsync();
//更新任务执行表,单据状态为 完成 //更新任务执行表,单据状态为 完成
_ = await _db.Updateable<WmsDistaskH>().SetColumns(it => new WmsDistaskH { status = WmsWareHouseConst.TASK_BILL_STATUS_COMPLE_ID, act_end_date = DateTime.Now }).Where(it => input.disTaskIds.Contains(it.id)).ExecuteCommandAsync(); _ = await db.Updateable<WmsDistaskH>().SetColumns(it => new WmsDistaskH { status = WmsWareHouseConst.TASK_BILL_STATUS_COMPLE_ID, act_end_date = DateTime.Now }).Where(it => input.disTaskIds.Contains(it.id)).ExecuteCommandAsync();
List<WmsDistaskH> disTasks = await _db.Queryable<WmsDistaskH>().InnerJoin<WmsCarryH>((a, b) => a.carry_id == b.id).Where(a => input.disTaskIds.Contains(a.id)).Select((a, b) => new WmsDistaskH { carry_status = b.carry_status }, true).ToListAsync(); List<WmsDistaskH> disTasks = await db.Queryable<WmsDistaskH>().InnerJoin<WmsCarryH>((a, b) => a.carry_id == b.id).Where(a => input.disTaskIds.Contains(a.id)).Select((a, b) => new WmsDistaskH { carry_status = b.carry_status }, true).ToListAsync();
Logger.Information($"【TaskComplate】 disTasks 值 {JsonConvert.SerializeObject(disTasks)}"); Logger.Information($"【TaskComplate】 disTasks 值 {JsonConvert.SerializeObject(disTasks)}");
if (disTasks?.Count > 0) if (disTasks?.Count > 0)
{ {
// 更新预任务申请表,单据状态为 已完成 // 更新预任务申请表,单据状态为 已完成
List<string> preTaskIds = disTasks.Select(x => x.pretask_id).ToList(); List<string> preTaskIds = disTasks.Select(x => x.pretask_id).ToList();
_ = await _db.Updateable<WmsPretaskH>().SetColumns(it => new WmsPretaskH { status = WmsWareHouseConst.PRETASK_BILL_STATUS_COMPLE_ID }).Where(it => preTaskIds.Contains(it.id)).ExecuteCommandAsync(); _ = await db.Updateable<WmsPretaskH>().SetColumns(it => new WmsPretaskH { status = WmsWareHouseConst.PRETASK_BILL_STATUS_COMPLE_ID }).Where(it => preTaskIds.Contains(it.id)).ExecuteCommandAsync();
//更新电梯任务数量 //更新电梯任务数量
_ = await _db.Updateable<WmsElevatorH>().SetColumns(it => new WmsElevatorH { task_nums = it.task_nums - 1}).Where(it => disTasks.Select(x => x.area_code).Contains(it.area_code)).ExecuteCommandAsync(); _ = await db.Updateable<WmsElevatorH>().SetColumns(it => new WmsElevatorH { task_nums = it.task_nums - 1}).Where(it => disTasks.Select(x => x.area_code).Contains(it.area_code)).ExecuteCommandAsync();
// 更新任务数量 // 更新任务数量
_ = await _db.Updateable<BasLocation>().SetColumns(it => new BasLocation { task_nums = it.task_nums - 1 }).Where(it => disTasks.Select(x => x.endlocation_code).Contains(it.location_code)).ExecuteCommandAsync(); _ = await db.Updateable<BasLocation>().SetColumns(it => new BasLocation { task_nums = it.task_nums - 1 }).Where(it => disTasks.Select(x => x.endlocation_code).Contains(it.location_code)).ExecuteCommandAsync();
//更新载具,锁定状态为未锁定,更新载具的库位当前任务的目标库位 //更新载具,锁定状态为未锁定,更新载具的库位当前任务的目标库位
List<(string carry_id, string carry_status, string endlocation_id, string endlocation_code)> multiList = disTasks.Select(it => (it.carry_id, it.carry_status, it.endlocation_id, it.endlocation_code)).ToList(); List<(string carry_id, string carry_status, string endlocation_id, string endlocation_code)> multiList = disTasks.Select(it => (it.carry_id, it.carry_status, it.endlocation_id, it.endlocation_code)).ToList();
Dictionary<string, object> locWhIdMap = await _db.Queryable<BasLocation>().Where(it => multiList.Select(x => x.endlocation_id).Contains(it.id)).ToDictionaryAsync(it => it.id, it => it.wh_id); Dictionary<string, object> locWhIdMap = await db.Queryable<BasLocation>().Where(it => multiList.Select(x => x.endlocation_id).Contains(it.id)).ToDictionaryAsync(it => it.id, it => it.wh_id);
Dictionary<string, object> locTypeMap = await _db.Queryable<BasLocation>().Where(it => multiList.Select(x => x.endlocation_id).Contains(it.id)).ToDictionaryAsync(it => it.id, it => it.is_type); Dictionary<string, object> locTypeMap = await db.Queryable<BasLocation>().Where(it => multiList.Select(x => x.endlocation_id).Contains(it.id)).ToDictionaryAsync(it => it.id, it => it.is_type);
List<WmsCarryH> carryIts = new(); List<WmsCarryH> carryIts = new();
List<WmsCarryCode> carryCodeIts = new(); List<WmsCarryCode> carryCodeIts = new();
List<BasLocation> locIts = new(); List<BasLocation> locIts = new();
@@ -2517,11 +2520,11 @@ namespace Tnb.WarehouseMgr
}; };
string endLocId = multiList[i].endlocation_id; string endLocId = multiList[i].endlocation_id;
WmsCarryH wmsCarryH = await _db.Queryable<WmsCarryH>().Where(r => r.id == carry.id).FirstAsync(); WmsCarryH wmsCarryH = await db.Queryable<WmsCarryH>().Where(r => r.id == carry.id).FirstAsync();
// 同步料架下的载具位置 // 同步料架下的载具位置
if (wmsCarryH != null && wmsCarryH.carrystd_id == WmsWareHouseConst.CARRY_LJSTD_ID) if (wmsCarryH != null && wmsCarryH.carrystd_id == WmsWareHouseConst.CARRY_LJSTD_ID)
{ {
List<WmsCarryH> carrys = _db.Queryable<WmsCarryD>() List<WmsCarryH> carrys = db.Queryable<WmsCarryD>()
.InnerJoin<WmsCarryH>((a, b) => a.membercarry_id == b.id).Where((a, b) => a.carry_id == carry.id).Select((a, b) => b).ToList(); .InnerJoin<WmsCarryH>((a, b) => a.membercarry_id == b.id).Where((a, b) => a.carry_id == carry.id).Select((a, b) => b).ToList();
carrys.ForEach(r => carrys.ForEach(r =>
{ {
@@ -2531,7 +2534,7 @@ namespace Tnb.WarehouseMgr
}); });
} }
List<WmsCarryCode> carrycodes = _db.Queryable<WmsCarryCode>().Where(r => r.carry_id == carry.id).ToList(); List<WmsCarryCode> carrycodes = db.Queryable<WmsCarryCode>().Where(r => r.carry_id == carry.id).ToList();
carrycodes.ForEach(r => carrycodes.ForEach(r =>
{ {
r.warehouse_id = locWhIdMap.ContainsKey(endLocId) ? locWhIdMap[endLocId].ToString() : ""; r.warehouse_id = locWhIdMap.ContainsKey(endLocId) ? locWhIdMap[endLocId].ToString() : "";
@@ -2563,12 +2566,12 @@ namespace Tnb.WarehouseMgr
locIts.Add(loc); locIts.Add(loc);
} }
_ = await _db.Updateable(carryIts).UpdateColumns(it => new { it.is_lock, it.location_id, it.location_code, it.instock_time }).ExecuteCommandAsync(); _ = await db.Updateable(carryIts).UpdateColumns(it => new { it.is_lock, it.location_id, it.location_code, it.instock_time }).ExecuteCommandAsync();
Logger.Information($"【TaskComplate】 更新载具 {JsonConvert.SerializeObject(carryIts)}"); Logger.Information($"【TaskComplate】 更新载具 {JsonConvert.SerializeObject(carryIts)}");
//更新条码的库位和仓库信息 //更新条码的库位和仓库信息
_ = await _db.Updateable(carryCodeIts).UpdateColumns(it => new { it.warehouse_id, it.location_id, it.location_code }).ExecuteCommandAsync(); _ = await db.Updateable(carryCodeIts).UpdateColumns(it => new { it.warehouse_id, it.location_id, it.location_code }).ExecuteCommandAsync();
//更新库位信息,使用状态为 使用,锁定状态为未锁定 //更新库位信息,使用状态为 使用,锁定状态为未锁定
_ = await _db.Updateable(locIts).UpdateColumns(it => new { it.is_use, it.is_lock }).ExecuteCommandAsync(); _ = await db.Updateable(locIts).UpdateColumns(it => new { it.is_use, it.is_lock }).ExecuteCommandAsync();
Logger.Information($"【TaskComplate】 更新库位 {JsonConvert.SerializeObject(locIts)}"); Logger.Information($"【TaskComplate】 更新库位 {JsonConvert.SerializeObject(locIts)}");
/* var loginType= _userManager?.LoginType ?? "web"; /* var loginType= _userManager?.LoginType ?? "web";
Log.Information($"_userManager.LoginType={loginType}"); Log.Information($"_userManager.LoginType={loginType}");
@@ -2580,7 +2583,7 @@ namespace Tnb.WarehouseMgr
addOutinStockDetailInput.disTask = dt; addOutinStockDetailInput.disTask = dt;
addOutinStockDetailInput.start_warehouse_id = locWhIdMap.ContainsKey(dt.startlocation_id) ? locWhIdMap[dt.startlocation_id].ToString() : ""; addOutinStockDetailInput.start_warehouse_id = locWhIdMap.ContainsKey(dt.startlocation_id) ? locWhIdMap[dt.startlocation_id].ToString() : "";
addOutinStockDetailInput.end_warehouse_id = locWhIdMap.ContainsKey(dt.endlocation_id) ? locWhIdMap[dt.endlocation_id].ToString() : ""; addOutinStockDetailInput.end_warehouse_id = locWhIdMap.ContainsKey(dt.endlocation_id) ? locWhIdMap[dt.endlocation_id].ToString() : "";
await _wmsOutinStockDetailService.AddOutinStockDetail(addOutinStockDetailInput, _db); await _wmsOutinStockDetailService.AddOutinStockDetail(addOutinStockDetailInput, db);
#region todo service中 #region todo service中
// 销售出库 // 销售出库
@@ -2589,12 +2592,12 @@ namespace Tnb.WarehouseMgr
// TODO 一楼工位放货完成后更新出库明细的实际出库数量 // TODO 一楼工位放货完成后更新出库明细的实际出库数量
if (dt.start_floor == 1 && dt.end_floor == 1) if (dt.start_floor == 1 && dt.end_floor == 1)
{ {
WmsCarryCode wmsCarryCode = await _db.Queryable<WmsCarryCode>().Where(r => r.carry_id == dt.carry_id).FirstAsync(); WmsCarryCode wmsCarryCode = await db.Queryable<WmsCarryCode>().Where(r => r.carry_id == dt.carry_id).FirstAsync();
await _db.Updateable<WmsSaleD>().SetColumns(r => r.purchase_prqty == r.purchase_prqty + wmsCarryCode.codeqty).Where(r => r.id == dt.require_id).ExecuteCommandAsync(); await db.Updateable<WmsSaleD>().SetColumns(r => r.purchase_prqty == r.purchase_prqty + wmsCarryCode.codeqty).Where(r => r.id == dt.require_id).ExecuteCommandAsync();
CarryCodeUnbindInput carryCodeUnbindInput = new CarryCodeUnbindInput(); CarryCodeUnbindInput carryCodeUnbindInput = new CarryCodeUnbindInput();
carryCodeUnbindInput.carry_id = dt.carry_id; carryCodeUnbindInput.carry_id = dt.carry_id;
await _wmsCarryUnbindService.CarryCodeUnbind(carryCodeUnbindInput, _db); await _wmsCarryUnbindService.CarryCodeUnbind(carryCodeUnbindInput, db);
} }
} }
// 成品调拨入库 // 成品调拨入库
@@ -2602,14 +2605,14 @@ namespace Tnb.WarehouseMgr
{ {
if (dt.start_floor == 3 && dt.end_floor == 3) if (dt.start_floor == 3 && dt.end_floor == 3)
{ {
WmsCarryCode wmsCarryCode = await _db.Queryable<WmsCarryCode>().Where(r => r.carry_id == dt.carry_id).FirstAsync(); WmsCarryCode wmsCarryCode = await db.Queryable<WmsCarryCode>().Where(r => r.carry_id == dt.carry_id).FirstAsync();
await _db.Updateable<WmsTransferInstockD>().SetColumns(r => r.qty == r.qty + wmsCarryCode.codeqty).Where(r => r.id == dt.require_id).ExecuteCommandAsync(); await db.Updateable<WmsTransferInstockD>().SetColumns(r => r.qty == r.qty + wmsCarryCode.codeqty).Where(r => r.id == dt.require_id).ExecuteCommandAsync();
} }
} }
// 二楼物料呼叫任务结束后清空工位信息 // 二楼物料呼叫任务结束后清空工位信息
else if (dt.biz_type == "FloorCallMaterial") else if (dt.biz_type == "FloorCallMaterial")
{ {
await _db.Updateable<WmsCarryH>().SetColumns(r => new WmsCarryH await db.Updateable<WmsCarryH>().SetColumns(r => new WmsCarryH
{ {
work_station = "" work_station = ""
}).Where(r => r.id == dt.carry_id).ExecuteCommandAsync(); }).Where(r => r.id == dt.carry_id).ExecuteCommandAsync();
@@ -2619,11 +2622,11 @@ namespace Tnb.WarehouseMgr
} }
else if (dt.biz_type == "erp_qtrk") else if (dt.biz_type == "erp_qtrk")
{ {
WmsMaterialTransfer wmsMaterialTransfer = await _db.Queryable<WmsMaterialTransfer>().SingleAsync(x=>x.id==dt.source_id); WmsMaterialTransfer wmsMaterialTransfer = await db.Queryable<WmsMaterialTransfer>().SingleAsync(x=>x.id==dt.source_id);
List<WmsMaterialTransferD> wmsMaterialTransferDs = await _db.Queryable<WmsMaterialTransferD>().Where(x=>x.bill_id==dt.source_id).ToListAsync(); List<WmsMaterialTransferD> wmsMaterialTransferDs = await db.Queryable<WmsMaterialTransferD>().Where(x=>x.bill_id==dt.source_id).ToListAsync();
List<String> materialIds = wmsMaterialTransferDs.Select(x=>x.material_id).Distinct().ToList(); List<String> materialIds = wmsMaterialTransferDs.Select(x=>x.material_id).Distinct().ToList();
List<String> unitCodes = wmsMaterialTransferDs.Select(x => x.unit_id).Distinct().ToList(); List<String> unitCodes = wmsMaterialTransferDs.Select(x => x.unit_id).Distinct().ToList();
List<DictionaryDataEntity> unitDatas = await _db.Queryable<DictionaryTypeEntity>() List<DictionaryDataEntity> unitDatas = await db.Queryable<DictionaryTypeEntity>()
.LeftJoin<DictionaryDataEntity>((x, y) => x.Id == y.DictionaryTypeId) .LeftJoin<DictionaryDataEntity>((x, y) => x.Id == y.DictionaryTypeId)
.Where((x, y) => x.EnCode == DictConst.MeasurementUnit && unitCodes.Contains(y.EnCode)) .Where((x, y) => x.EnCode == DictConst.MeasurementUnit && unitCodes.Contains(y.EnCode))
.Select((x,y)=>y) .Select((x,y)=>y)
@@ -2636,7 +2639,7 @@ namespace Tnb.WarehouseMgr
ids.AddRange(materialIds); ids.AddRange(materialIds);
ids.AddRange(unitDatas.Select(x=>x.Id).ToList()); ids.AddRange(unitDatas.Select(x=>x.Id).ToList());
List<ErpExtendField> erpExtendFields = await _db.Queryable<ErpExtendField>().Where(x=>ids.Contains(x.table_id)).ToListAsync(); List<ErpExtendField> erpExtendFields = await db.Queryable<ErpExtendField>().Where(x=>ids.Contains(x.table_id)).ToListAsync();
string erpCreateId = erpExtendFields.Find(x=>x.table_id==wmsMaterialTransfer.create_id)?.user_id ?? ""; string erpCreateId = erpExtendFields.Find(x=>x.table_id==wmsMaterialTransfer.create_id)?.user_id ?? "";
ErpExtendField erpOrg = erpExtendFields.Find(x => x.table_id == (wmsMaterialTransfer.org_id ?? WmsWareHouseConst.AdministratorOrgId)); ErpExtendField erpOrg = erpExtendFields.Find(x => x.table_id == (wmsMaterialTransfer.org_id ?? WmsWareHouseConst.AdministratorOrgId));
string nowStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); string nowStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
@@ -2691,7 +2694,7 @@ namespace Tnb.WarehouseMgr
erpRequestData.Add("dtls",erpRequestDataDetails); erpRequestData.Add("dtls",erpRequestDataDetails);
requestData.Add(erpRequestData); requestData.Add(erpRequestData);
BasFactoryConfig config = await _db.Queryable<BasFactoryConfig>().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.BIPURL); BasFactoryConfig config = await db.Queryable<BasFactoryConfig>().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.BIPURL);
ThirdWebapiRecord thirdWebapiRecord = new ThirdWebapiRecord(); ThirdWebapiRecord thirdWebapiRecord = new ThirdWebapiRecord();
thirdWebapiRecord.id = SnowflakeIdHelper.NextId(); thirdWebapiRecord.id = SnowflakeIdHelper.NextId();
thirdWebapiRecord.third_name = WmsWareHouseConst.BIP; thirdWebapiRecord.third_name = WmsWareHouseConst.BIP;
@@ -2702,11 +2705,11 @@ namespace Tnb.WarehouseMgr
thirdWebapiRecord.request_data = JsonConvert.SerializeObject(requestData); thirdWebapiRecord.request_data = JsonConvert.SerializeObject(requestData);
thirdWebapiRecord.create_time = DateTime.Now; thirdWebapiRecord.create_time = DateTime.Now;
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync(); await db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
} }
#endregion #endregion
List<WmsDistaskCode> disTaskCodes = await _db.Queryable<WmsDistaskCode>().Where(it => it.bill_id == dt.id).ToListAsync(); List<WmsDistaskCode> disTaskCodes = await db.Queryable<WmsDistaskCode>().Where(it => it.bill_id == dt.id).ToListAsync();
WareHouseUpInput upInput = new() { bizTypeId = dt.biz_type, requireId = dt.require_id!, require_code = dt.require_code!, source_id = dt.source_id! WareHouseUpInput upInput = new() { bizTypeId = dt.biz_type, requireId = dt.require_id!, require_code = dt.require_code!, source_id = dt.source_id!
, source_code = dt.source_code!, distaskCodes = disTaskCodes, carryIds = disTasks.Select(x => x.carry_id).ToList(), , source_code = dt.source_code!, distaskCodes = disTaskCodes, carryIds = disTasks.Select(x => x.carry_id).ToList(),
bill_code = dt.bill_code!,area_code= dt.area_code!,wmsDistaskH = dt! bill_code = dt.bill_code!,area_code= dt.area_code!,wmsDistaskH = dt!
@@ -2728,7 +2731,7 @@ namespace Tnb.WarehouseMgr
} }
} }
Logger.Information($"【TaskComplate】 任务操作完成提交事务 {string.Join(",", input.disTaskIds)}"); Logger.Information($"【TaskComplate】 任务操作完成提交事务 {string.Join(",", input.disTaskIds)}");
await _db.Ado.CommitTranAsync(); await db.Ado.CommitTranAsync();
Logger.Information($"【TaskComplate】 任务操作完成 {string.Join(",", input.disTaskIds)}"); Logger.Information($"【TaskComplate】 任务操作完成 {string.Join(",", input.disTaskIds)}");
} }
@@ -2736,7 +2739,7 @@ namespace Tnb.WarehouseMgr
{ {
Logger.Error($"任务结束失败", ex); Logger.Error($"任务结束失败", ex);
Logger.Error($"任务结束失败堆栈异常", ex); Logger.Error($"任务结束失败堆栈异常", ex);
await _db.Ado.RollbackTranAsync(); await db.Ado.RollbackTranAsync();
throw; throw;
} }
finally finally

View File

@@ -3,6 +3,9 @@ using JNPF.Common.Dtos.VisualDev;
using JNPF.Systems.Interfaces.System; using JNPF.Systems.Interfaces.System;
using JNPF.VisualDev; using JNPF.VisualDev;
using JNPF.VisualDev.Interfaces; using JNPF.VisualDev.Interfaces;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using SqlSugar; using SqlSugar;
using Tnb.WarehouseMgr.Entities; using Tnb.WarehouseMgr.Entities;
using Tnb.WarehouseMgr.Entities.Dto.Inputs; using Tnb.WarehouseMgr.Entities.Dto.Inputs;
@@ -44,6 +47,7 @@ namespace Tnb.WarehouseMgr
try try
{ {
Logger.LogWarning($"【ExceptionComplete】 {JsonConvert.SerializeObject(input)}");
await _db.Ado.BeginTranAsync(); await _db.Ado.BeginTranAsync();
TaskCompleUpInput taskCompleUpInput = new(); TaskCompleUpInput taskCompleUpInput = new();
List<string> list = new(); List<string> list = new();