电梯日志优化erp同步调整
This commit is contained in:
@@ -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}执行完成");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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; }
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
Reference in New Issue
Block a user