From 9264556f49d200d7ac53c6092318b2662179625e Mon Sep 17 00:00:00 2001
From: majian <780924089@qq.com>
Date: Fri, 20 Sep 2024 11:42:59 +0800
Subject: [PATCH] =?UTF-8?q?=E8=BD=AC=E5=BA=93=E7=B1=BB=E5=9E=8B=E7=AD=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Consts/WmsWareHouseConst.cs | 8 +++
.../Entity/WmsMaterialTransfer.cs | 4 --
.../Tnb.WarehouseMgr/DeviceProviderService.cs | 17 +++---
.../Tnb.WarehouseMgr/ErpToWmsService.cs | 52 ++++++++-----------
.../WmsMaterialTransferService.cs | 16 +++---
5 files changed, 50 insertions(+), 47 deletions(-)
diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs
index 3e0a6c8a..792ba745 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs
@@ -112,6 +112,14 @@
/// 跨层外协件出入库
///
public const string MATERIALTRANSFER_CROSSLAYER_CODE = "crosslayer";
+ ///
+ /// 包材出库
+ ///
+ public const string MATERIALTRANSFER_PACKING_CODE = "packing";
+ ///
+ /// 外协调拨出库
+ ///
+ public const string MATERIALTRANSFER_WXDBOUTWAREHOUSE_CODE = "wxdbOutWarehouse";
///
/// 出入库单据状态TypeID
diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsMaterialTransfer.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsMaterialTransfer.cs
index 6aadb201..c105723a 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsMaterialTransfer.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsMaterialTransfer.cs
@@ -129,10 +129,6 @@ public partial class WmsMaterialTransfer : BaseEntity
///
public string? erp_bill_code { get; set; }
- ///
- /// 转库类型(弃用)
- ///
- public string? transfer_type { get; set; }
///
/// 主表主键
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/DeviceProviderService.cs b/WarehouseMgr/Tnb.WarehouseMgr/DeviceProviderService.cs
index 4012227f..2c01924b 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/DeviceProviderService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/DeviceProviderService.cs
@@ -432,11 +432,16 @@ namespace Tnb.WarehouseMgr
return await ToApiResult(HttpStatusCode.InternalServerError, $"电梯{devName}内已有两托货!");
}
WmsElevatorcacheArea wmsElevatorcacheArea = await _db.Queryable().Where(r => r.location_id == dis.startlocation_id).FirstAsync();
- // 如果当前所放梯内货位已占用
- if (elevator.innerpos.Contains(wmsElevatorcacheArea.name))
+
+
+ // 两托盘出库进此判断 如果当前所放梯内货位已占用
+ if (wmsElevatorcacheArea != null)
{
- Logger.LogInformation($"电梯{devName}内托盘{dis.carry_code}当前准备放置的货位已有货!");
- return await ToApiResult(HttpStatusCode.InternalServerError, $"电梯{devName}内托盘{dis.carry_code}当前准备放置的货位已有货!");
+ if (elevator.innerpos.Contains(wmsElevatorcacheArea.name))
+ {
+ Logger.LogInformation($"电梯{devName}内托盘{dis.carry_code}当前准备放置的货位已有货!");
+ return await ToApiResult(HttpStatusCode.InternalServerError, $"电梯{devName}内托盘{dis.carry_code}当前准备放置的货位已有货!");
+ }
}
canEnter = true;
@@ -461,8 +466,8 @@ namespace Tnb.WarehouseMgr
}
catch (Exception ex)
{
- Logger.Error("【UnloadConfirm】 放货确认失败", ex.Message);
- Logger.Error("【UnloadConfirm】 放货确认失败", ex.StackTrace);
+ Logger.Error($"【UnloadConfirm】 放货确认失败{ex.Message}");
+ Logger.Error($"【UnloadConfirm】 放货确认失败{ex.StackTrace}");
return await ToApiResult(HttpStatusCode.InternalServerError, "电梯还未开门,请重试!");
throw;
}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs b/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs
index 3f6bbf0c..a1a7581d 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs
@@ -726,8 +726,10 @@ namespace Tnb.WarehouseMgr
}
string transfer_type = "";
- // 中储仓到暂存仓
- if (warehouse_outstock.id == WmsWareHouseConst.WAREHOUSE_ZC_ID
+
+ #region 转库类型
+ // 齐套出入库
+ if (warehouse_outstock.id == WmsWareHouseConst.WAREHOUSE_ZC_ID
&& (warehouse_instock.id == WmsWareHouseConst.WAREHOUSE_ZCC_ID || warehouse_instock.id == WmsWareHouseConst.WAREHOUSE_HCC_ID))
{
int count = input.details.Where(r => string.IsNullOrEmpty(r.station_code)).Count();
@@ -736,35 +738,27 @@ namespace Tnb.WarehouseMgr
_LoggerErp2Mes.LogWarning($@"【MaterialTransfer】表体存在未填写工位的明细!");
throw new AppFriendlyException($@"表体存在未填写工位的明细!", 500);
}
-
- transfer_type = WmsWareHouseConst.MATERIALTRANSFER_CGCK_CODE;
- }
- else if (warehouse_outstock.id == WmsWareHouseConst.WAREHOUSE_CPCRK_ID && warehouse_instock.id == WmsWareHouseConst.WAREHOUSE_CP_ID)
- {
- transfer_type = WmsWareHouseConst.MATERIALTRANSFER_WXDBRK_CODE;
- }
- else if (warehouse_outstock.id == WmsWareHouseConst.WAREHOUSE_YCL_ID && warehouse_instock.id == WmsWareHouseConst.WAREHOUSE_JZGL_ID)
- {
- transfer_type = WmsWareHouseConst.MATERIALTRANSFER_JZGLRK_CODE;
- }
- else if (warehouse_outstock.id == WmsWareHouseConst.WAREHOUSE_YCL_ID && warehouse_instock.id == WmsWareHouseConst.WAREHOUSE_ZZXBK_ID)
- {
- transfer_type = WmsWareHouseConst.MATERIALTRANSFER_CROSSLAYER_CODE;
- }
-
- // 暂时其他情况都算齐套出入库类型(未定)
- else
- {
- int count = input.details.Where(r => string.IsNullOrEmpty(r.station_code)).Count();
- if (count > 0)
- {
- _LoggerErp2Mes.LogWarning($@"【MaterialTransfer】表体存在未填写工位的明细!");
- throw new AppFriendlyException($@"表体存在未填写工位的明细!", 500);
- }
-
transfer_type = WmsWareHouseConst.MATERIALTRANSFER_QTCRK_CODE;
}
-
+ // 外协调拨入库
+ else if (warehouse_outstock.id == WmsWareHouseConst.WAREHOUSE_YCL_ID && warehouse_instock.id == WmsWareHouseConst.WAREHOUSE_ZC_ID)
+ transfer_type = WmsWareHouseConst.MATERIALTRANSFER_WXDBRK_CODE;
+ // 集中供料入库
+ else if (warehouse_outstock.id == WmsWareHouseConst.WAREHOUSE_YCL_ID && warehouse_instock.id == WmsWareHouseConst.WAREHOUSE_JZGL_ID)
+ transfer_type = WmsWareHouseConst.MATERIALTRANSFER_JZGLRK_CODE;
+ // 跨层外协件出入库
+ else if (warehouse_outstock.id == WmsWareHouseConst.WAREHOUSE_YCL_ID && warehouse_instock.id == WmsWareHouseConst.WAREHOUSE_ZZXBK_ID)
+ transfer_type = WmsWareHouseConst.MATERIALTRANSFER_CROSSLAYER_CODE;
+ // 包材出库
+ else if (warehouse_outstock.id == WmsWareHouseConst.WAREHOUSE_BCK_ID && warehouse_instock.id == WmsWareHouseConst.WAREHOUSE_F2BCQ_ID)
+ transfer_type = WmsWareHouseConst.MATERIALTRANSFER_PACKING_CODE;
+ // 长管出库
+ else if (warehouse_outstock.id == WmsWareHouseConst.WAREHOUSE_HCC_ID && warehouse_instock.id == WmsWareHouseConst.WAREHOUSE_ZZXBK_ID)
+ transfer_type = WmsWareHouseConst.MATERIALTRANSFER_CGCK_CODE;
+ // 外协调拨出库
+ else if (warehouse_outstock.id == WmsWareHouseConst.WAREHOUSE_ZC_ID && warehouse_instock.id == WmsWareHouseConst.WAREHOUSE_YCL_ID)
+ transfer_type = WmsWareHouseConst.MATERIALTRANSFER_WXDBOUTWAREHOUSE_CODE;
+ #endregion
//var wmsMaterialTransferdsDistinct = input.details.Select(r => new
//{
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs
index 724ac44e..d8a6b8d7 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs
@@ -452,17 +452,18 @@ namespace Tnb.WarehouseMgr
.InnerJoin((a, b, c, d) => b.id == d.fk_id)
.WhereIF(!string.IsNullOrEmpty(input.warehouse_outstock), (a, b, c) => a.warehouse_outstock == input.warehouse_outstock)
.WhereIF(!string.IsNullOrEmpty(input.warehouse_instock), (a, b, c) => a.warehouse_instock == input.warehouse_instock)
- .Where((a, b, c,d) => d.rk_qty < d.actual_outstock_qty)
+ .Where((a, b, c, d) => d.rk_qty < d.actual_outstock_qty)
+ .OrderBy((a, b, c, d) => b.create_time)
.Select((a, b, c, d) => new
{
materialtransfer_billcode = a.bill_code,
otheroutstock_id = b.id,
otheroutstock_billcode = b.bill_code,
- outstock_time = b.create_time,
- material_id=c.material_id,
- material_code=c.material_code,
- material_name=c.material_ex,
- material_spec=c.material_specification,
+ outstock_time = b.create_time.ToString("yyyy-MM-dd HH:mm:ss"),
+ material_id = c.material_id,
+ material_code = c.material_code,
+ material_name = c.material_ex,
+ material_spec = c.material_specification,
unit_code = c.unit_id,
code_batch = c.code_batch,
remainqty = d.actual_outstock_qty - d.rk_qty
@@ -1063,9 +1064,8 @@ namespace Tnb.WarehouseMgr
if (input.area_code == "E")
await sign(input);
-
// 其它入库
- if (input.wmsDistaskH.task_type == WmsWareHouseConst.WMS_PRETASK_INSTOCK_TYPE_ID)
+ if (wmsMaterialTransfer.type == WmsWareHouseConst.MATERIALTRANSFER_WXDBRK_CODE)
{
Logger.LogInformation("【WmsMaterialTransferService ModifyAsync】同步其它入库单到erp...");