From 97872f92ffbfda292d00339bc46714e5c3cd88c9 Mon Sep 17 00:00:00 2001
From: majian <780924089@qq.com>
Date: Thu, 1 Aug 2024 01:01:14 +0800
Subject: [PATCH] =?UTF-8?q?erp=E5=8E=9F=E6=9D=90=E6=96=99=E8=B0=83?=
=?UTF-8?q?=E6=8B=A8=E3=80=81=E5=A7=94=E5=A4=96=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Tnb.ProductionMgr/RedisBackGround.cs | 9 +-
.../Consts/WmsWareHouseConst.cs | 8 +-
...stockInput.cs => TransferOutstockInput.cs} | 7 +-
.../Entity/WmsOutsourceD.cs | 9 +-
.../Entity/WmsOutsourceH.cs | 12 +-
.../Entity/WmsOutsourceOrderD.cs | 126 ++++++++
.../Entity/WmsOutsourceOrderH.cs | 122 ++++++++
.../Entity/WmsRawmatTransferinstockD.cs | 5 +
.../Tnb.WarehouseMgr/ErpToWmsService.cs | 120 ++++----
.../Tnb.WarehouseMgr/WmsCarryBindService.cs | 6 +-
.../Tnb.WarehouseMgr/WmsInStockService.cs | 269 +++++++++---------
.../WmsPDAScanInStockService.cs | 25 +-
12 files changed, 510 insertions(+), 208 deletions(-)
rename WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/ErpInputs/{RawMatTransferInstockInput.cs => TransferOutstockInput.cs} (92%)
create mode 100644 WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsOutsourceOrderD.cs
create mode 100644 WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsOutsourceOrderH.cs
diff --git a/ProductionMgr/Tnb.ProductionMgr/RedisBackGround.cs b/ProductionMgr/Tnb.ProductionMgr/RedisBackGround.cs
index 030463d9..b1a35715 100644
--- a/ProductionMgr/Tnb.ProductionMgr/RedisBackGround.cs
+++ b/ProductionMgr/Tnb.ProductionMgr/RedisBackGround.cs
@@ -466,6 +466,7 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
input.data.Add("material_specification", WmsCarryCode.material_specification!);//规格型号
input.data.Add("container_no", WmsCarryCode.container_no!);//箱号
input.data.Add("material_id", WmsCarryCode.material_id);
+ input.data.Add("物料条码", WmsCarryCode.barcode);
input.data.Add("id", null);
_wmsPDAScanInStock.ScanInStockByRedis(input).Wait();
}
@@ -661,7 +662,7 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
if (items.Count < 1)
{
- LoggerF2KTPsupplement.LogWarning($"【YCLInternalTransfer】 没有可以出库的空载具");
+ LoggerF2KTPsupplement.LogWarning($"【YCLInternalTransfer】 没有可以出库的载具");
return;
}
@@ -2470,10 +2471,10 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
BGWCarrySupplementtimer = new Timer(BGWCarrySupplement, null, TimeSpan.Zero, TimeSpan.FromSeconds(30));
// 供料叠盘机空托盘自动入库
- YCLGLDPJInstocktimer = new Timer(YCLGLDPJInstock, null, TimeSpan.Zero, TimeSpan.FromSeconds(30));
+ YCLGLDPJInstocktimer = new Timer(YCLGLDPJInstock, null, TimeSpan.FromSeconds(5), TimeSpan.FromSeconds(30));
// 外协叠盘机空托盘自动入库
- YCLWXDPJInstocktimer = new Timer(YCLWXDPJInstock, null, TimeSpan.Zero, TimeSpan.FromSeconds(30));
+ YCLWXDPJInstocktimer = new Timer(YCLWXDPJInstock, null, TimeSpan.FromSeconds(10), TimeSpan.FromSeconds(30));
// 二楼上升降机
Floor2UpMachinecodetimer = new Timer(Floor2UpMachinecode, null, TimeSpan.Zero, TimeSpan.FromSeconds(20));
@@ -2497,7 +2498,7 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
Floor4DMC2CPKtimer = new Timer(Floor4DMC2CPK, null, TimeSpan.Zero, TimeSpan.FromSeconds(30));
F2KTPsupplementtimer = new Timer(F2KTPsupplement, null, TimeSpan.Zero, TimeSpan.FromSeconds(30));
- YCLInternalTransfertimer = new Timer(YCLInternalTransfer, null, TimeSpan.Zero, TimeSpan.FromSeconds(180));
+ YCLInternalTransfertimer = new Timer(YCLInternalTransfer, null, TimeSpan.FromSeconds(15), TimeSpan.FromSeconds(185));
return Task.CompletedTask;
}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs
index ef469a45..f5ce65ac 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs
@@ -399,10 +399,15 @@
public const string SYNC_STATUS__SYNCFAILED = "26191354152229";
///
- /// 单据类型-来料入库单
+ /// 单据类型-来料入库单(采购)
///
public const string BILLTYPE_MATERIALINSTOCK_ID = "25103338755861";
+ ///
+ /// 单据类型-原材料委外入库单
+ ///
+ public const string BILLTYPE_OUTSOURCEINSTOCK_ID = "35910170390037";
+
///
/// 单据类型-生产入库单
///
@@ -418,7 +423,6 @@
/// 单据类型-委外收货
///
public const string BILLTYPE_OUTSOURCE_ID = "35882444276245";
-
///
/// 单据类型-原材料调拨入库
///
diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/ErpInputs/RawMatTransferInstockInput.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/ErpInputs/TransferOutstockInput.cs
similarity index 92%
rename from WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/ErpInputs/RawMatTransferInstockInput.cs
rename to WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/ErpInputs/TransferOutstockInput.cs
index a024fe1e..51b84b39 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/ErpInputs/RawMatTransferInstockInput.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/ErpInputs/TransferOutstockInput.cs
@@ -6,7 +6,7 @@ using System.Threading.Tasks;
namespace Tnb.WarehouseMgr.Entities.Dto.ErpInputs
{
- public class RawMatTransferInstockInput
+ public class TransferOutstockInput
{
///
/// 单号
@@ -28,6 +28,11 @@ namespace Tnb.WarehouseMgr.Entities.Dto.ErpInputs
///
public string? outstockorg_code { get; set; }
+ ///
+ /// 入库仓库编号
+ ///
+ public string? warehouse_instock { get; set; }
+
///
/// 凭证日期
///
diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsOutsourceD.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsOutsourceD.cs
index f404538c..998a77f7 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsOutsourceD.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsOutsourceD.cs
@@ -7,7 +7,7 @@ namespace Tnb.WarehouseMgr.Entities.Entity;
///
/// 委外订单表子表
///
-[SugarTable("wms_outsource_order_d")]
+[SugarTable("wms_outsource_d")]
public partial class WmsOutsourceD : BaseEntity
{
public WmsOutsourceD()
@@ -40,7 +40,7 @@ public partial class WmsOutsourceD : BaseEntity
public string? unit { get; set; }
///
- /// 采购数量
+ /// 委外数量
///
public decimal? outsource_quantity { get; set; }
@@ -114,9 +114,4 @@ public partial class WmsOutsourceD : BaseEntity
///
public DateTime? modify_time { get; set; }
- ///
- /// erp_line_pk
- ///
- public string? erp_line_pk { get; set; }
-
}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsOutsourceH.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsOutsourceH.cs
index d9dad8c0..4cc02641 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsOutsourceH.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsOutsourceH.cs
@@ -7,7 +7,7 @@ namespace Tnb.WarehouseMgr.Entities.Entity;
///
/// 委外订单
///
-[SugarTable("wms_outsource_order_h")]
+[SugarTable("wms_outsource_h")]
public partial class WmsOutsourceH : BaseEntity
{
public WmsOutsourceH()
@@ -104,16 +104,6 @@ public partial class WmsOutsourceH : BaseEntity
///
public string? f_flowid { get; set; }
- ///
- /// erp_pk
- ///
- public string? erp_pk { get; set; }
-
- ///
- /// erp_bill_code
- ///
- public string? erp_bill_code { get; set; }
-
///
/// 供货日期
///
diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsOutsourceOrderD.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsOutsourceOrderD.cs
new file mode 100644
index 00000000..bb20b1b3
--- /dev/null
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsOutsourceOrderD.cs
@@ -0,0 +1,126 @@
+using JNPF.Common.Contracts;
+using JNPF.Common.Security;
+using SqlSugar;
+
+namespace Tnb.WarehouseMgr.Entities.Entity;
+
+///
+/// 委外订单表子表
+///
+[SugarTable("wms_outsource_order_d")]
+public partial class WmsOutsourceOrderD : BaseEntity
+{
+ public WmsOutsourceOrderD()
+ {
+ id = SnowflakeIdHelper.NextId();
+ }
+ ///
+ /// 主表id
+ ///
+ public string? fk_wms_outsource_order_id { get; set; }
+
+ ///
+ /// 物料id
+ ///
+ public string? matcode_id { get; set; }
+
+ ///
+ /// 物料编号
+ ///
+ public string? matcode { get; set; }
+
+ ///
+ /// 物料描述
+ ///
+ public string? matspecification { get; set; }
+
+ ///
+ /// 单位
+ ///
+ public string? unit { get; set; }
+
+ ///
+ /// 委外数量
+ ///
+ public decimal? outsource_quantity { get; set; }
+
+ ///
+ /// 实收数量
+ ///
+ public decimal? actual_quantity { get; set; }
+
+ ///
+ /// 库存地点ID
+ ///
+ public string? stock_location_id { get; set; }
+
+ ///
+ /// 库存地点
+ ///
+ public string? stock_location { get; set; }
+
+ ///
+ /// 批次
+ ///
+ public string? code_batch { get; set; }
+
+ ///
+ /// 备注
+ ///
+ public string? remark { get; set; }
+
+ ///
+ /// 扩展字段
+ ///
+ public string? extras { get; set; }
+
+ ///
+ /// 交货日期
+ ///
+ public string? delivery_date { get; set; }
+
+ ///
+ /// 净价
+ ///
+ public string? net_price { get; set; }
+
+ ///
+ /// 货币
+ ///
+ public string? currency { get; set; }
+
+ ///
+ /// 工厂
+ ///
+ public string? factory { get; set; }
+
+ ///
+ /// 创建用户
+ ///
+ public string? create_id { get; set; }
+
+ ///
+ /// 创建时间
+ ///
+ public DateTime? create_time { get; set; }
+
+ ///
+ /// 修改用户
+ ///
+ public string? modify_id { get; set; }
+
+ ///
+ /// 修改时间
+ ///
+ public DateTime? modify_time { get; set; }
+
+ ///
+ /// erp_line_pk
+ ///
+ public string? erp_line_pk { get; set; }
+
+ ///
+ /// 行号
+ ///
+ public string? lineno { get; set; }
+}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsOutsourceOrderH.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsOutsourceOrderH.cs
new file mode 100644
index 00000000..b6826d73
--- /dev/null
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsOutsourceOrderH.cs
@@ -0,0 +1,122 @@
+using JNPF.Common.Contracts;
+using JNPF.Common.Security;
+using SqlSugar;
+
+namespace Tnb.WarehouseMgr.Entities.Entity;
+
+///
+/// 委外订单
+///
+[SugarTable("wms_outsource_order_h")]
+public partial class WmsOutsourceOrderH : BaseEntity
+{
+ public WmsOutsourceOrderH()
+ {
+ id = SnowflakeIdHelper.NextId();
+ }
+ ///
+ /// 委外订单号
+ ///
+ public string? outsource_order { get; set; }
+
+ ///
+ /// 联系人
+ ///
+ public string? contact_person { get; set; }
+
+ ///
+ /// 电话
+ ///
+ public string? tel { get; set; }
+
+ ///
+ /// 供应商ID
+ ///
+ public string? supplier_id { get; set; }
+
+ ///
+ /// 供应商编号
+ ///
+ public string? supplier_code { get; set; }
+
+ ///
+ /// 供应商名称
+ ///
+ public string? supplier_name { get; set; }
+
+ ///
+ /// 备注
+ ///
+ public string? remark { get; set; }
+
+ ///
+ /// 扩展字段
+ ///
+ public string? extras { get; set; }
+
+ ///
+ /// 时间戳
+ ///
+ public string? time_stamp { get; set; }
+
+ ///
+ /// 单据类型
+ ///
+ public string? document_type { get; set; }
+
+ ///
+ /// 凭证日期
+ ///
+ public string? certificate_date { get; set; }
+
+ ///
+ /// 创建用户
+ ///
+ public string? create_id { get; set; }
+
+ ///
+ /// 创建时间
+ ///
+ public DateTime? create_time { get; set; }
+
+ ///
+ /// 修改用户
+ ///
+ public string? modify_id { get; set; }
+
+ ///
+ /// 修改时间
+ ///
+ public DateTime? modify_time { get; set; }
+
+ ///
+ /// 所属组织
+ ///
+ public string? org_id { get; set; }
+
+ ///
+ /// 流程任务Id
+ ///
+ public string? f_flowtaskid { get; set; }
+
+ ///
+ /// 流程引擎Id
+ ///
+ public string? f_flowid { get; set; }
+
+ ///
+ /// erp_pk
+ ///
+ public string? erp_pk { get; set; }
+
+ ///
+ /// erp_bill_code
+ ///
+ public string? erp_bill_code { get; set; }
+
+ ///
+ /// 供货日期
+ ///
+ public DateTime? ship_date { get; set; }
+
+}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsRawmatTransferinstockD.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsRawmatTransferinstockD.cs
index 747ec96a..148e4630 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsRawmatTransferinstockD.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsRawmatTransferinstockD.cs
@@ -119,4 +119,9 @@ public partial class WmsRawmatTransferinstockD : BaseEntity
///
public string? erp_line_pk { get; set; }
+ ///
+ /// 行号
+ ///
+ public string? lineno { get; set; }
+
}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs b/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs
index c3634a89..fc3fe93a 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs
@@ -370,6 +370,7 @@ namespace Tnb.WarehouseMgr
wmsPurchaseOrderD.create_id = WmsWareHouseConst.ErpUserId;
wmsPurchaseOrderD.create_time = DateTime.Now;
wmsPurchaseOrderD.actual_quantity = 0;
+ wmsPurchaseOrderD.lineno = detail.lineno;
var material = await db.Queryable().Where(p => p.code == detail.material_code).FirstAsync();
if (material != null)
@@ -437,8 +438,8 @@ namespace Tnb.WarehouseMgr
try
{
await db.Ado.BeginTranAsync();
- WmsOutsourceH wmsOutsourceOrderH = new WmsOutsourceH();
- string Code = await _billRuleService.GetBillNumber("Purchase");
+ WmsOutsourceOrderH wmsOutsourceOrderH = new WmsOutsourceOrderH();
+ string Code = await _billRuleService.GetBillNumber("WmsOutsourceOrder");
wmsOutsourceOrderH.outsource_order = Code;
wmsOutsourceOrderH.erp_bill_code = input.outsource_order;
@@ -460,10 +461,10 @@ namespace Tnb.WarehouseMgr
await db.Insertable(wmsOutsourceOrderH).ExecuteCommandAsync();
- List wmsOutsourceOrderDs = new List();
+ List wmsOutsourceOrderDs = new List();
foreach (var detail in input.details)
{
- WmsOutsourceD wmsOutsourceOrderD = new WmsOutsourceD();
+ WmsOutsourceOrderD wmsOutsourceOrderD = new WmsOutsourceOrderD();
wmsOutsourceOrderD.fk_wms_outsource_order_id = wmsOutsourceOrderH.id;
wmsOutsourceOrderD.matcode = detail.material_code;
@@ -476,7 +477,7 @@ namespace Tnb.WarehouseMgr
wmsOutsourceOrderD.create_id = WmsWareHouseConst.ErpUserId;
wmsOutsourceOrderD.create_time = DateTime.Now;
wmsOutsourceOrderD.actual_quantity = 0;
-
+ wmsOutsourceOrderD.lineno = detail.lineno;
var material = await db.Queryable().Where(p => p.code == detail.material_code).FirstAsync();
if (material != null)
{
@@ -797,24 +798,31 @@ namespace Tnb.WarehouseMgr
}
///
- /// 原材料调拨入库单
+ /// 调拨出库单同步
///
[HttpPost, NonUnify, AllowAnonymous]
- public async Task RawmatTransferInstock(RawMatTransferInstockInput input)
+ public async Task TransferOutstock(TransferOutstockInput input)
{
- LoggerErp2Mes.LogInformation($"【RawMatTransferInstock】ERP传入数据:{JsonConvert.SerializeObject(input)}");
+ LoggerErp2Mes.LogInformation($"【TransferOutstock】ERP传入数据:{JsonConvert.SerializeObject(input)}");
var db = _repository.AsSugarClient();
if (string.IsNullOrEmpty(input.erp_pk))
{
- _LoggerErp2Mes.LogWarning($"【RawMatTransferInstock】主表主键不能为空!");
+ _LoggerErp2Mes.LogWarning($"【TransferOutstock】主表主键不能为空!");
return await ToApiResult(HttpStatusCode.InternalServerError, $"主表主键不能为空!");
}
+ BasWarehouse warehouse_instock = await db.Queryable().Where(r => r.whcode == input.warehouse_instock).FirstAsync();
+ if (warehouse_instock == null)
+ {
+ _LoggerErp2Mes.LogWarning($"【MaterialTransfer】无法查询到入库仓库{input.warehouse_instock}的档案记录!");
+ return await ToApiResult(HttpStatusCode.InternalServerError, $"无法查询到入库仓库{input.warehouse_instock}的档案记录!");
+ }
+
int count_erp_line_pk = input.details.Where(r => string.IsNullOrEmpty(r.erp_line_pk)).Count();
if (count_erp_line_pk > 0)
{
- _LoggerErp2Mes.LogWarning($@"【RawMatTransferInstock】子表主键不能为空!");
+ _LoggerErp2Mes.LogWarning($@"【TransferOutstock】子表主键不能为空!");
throw new AppFriendlyException($@"子表主键不能为空!", 500);
}
@@ -825,66 +833,76 @@ namespace Tnb.WarehouseMgr
}).Distinct();
if (wmsPurchaseOrdersDistinct.Count() < input.details.Count)
{
- _LoggerErp2Mes.LogWarning($@"【RawMatTransferInstock】表体存在物料和批号重复的明细!");
+ _LoggerErp2Mes.LogWarning($@"【TransferOutstock】表体存在物料和批号重复的明细!");
throw new AppFriendlyException($@"表体存在物料和批号重复的明细!", 500);
}
try
{
await db.Ado.BeginTranAsync();
- WmsRawmatTransferinstockH wmsRawmatTransferinstockH = new WmsRawmatTransferinstockH();
- string Code = await _billRuleService.GetBillNumber("RawMatTransferInstock");
-
- wmsRawmatTransferinstockH.bill_code = Code;
- wmsRawmatTransferinstockH.erp_bill_code = input.outsource_order;
- wmsRawmatTransferinstockH.contact_person = input.contact_person;
- wmsRawmatTransferinstockH.tel = input.tel;
- wmsRawmatTransferinstockH.outstockorg_code = input.outstockorg_code;
- wmsRawmatTransferinstockH.erp_pk = input.erp_pk;
- wmsRawmatTransferinstockH.create_id = WmsWareHouseConst.ErpUserId;
- wmsRawmatTransferinstockH.create_time = DateTime.Now;
-
- await db.Insertable(wmsRawmatTransferinstockH).ExecuteCommandAsync();
-
-
- List wmsRawmatTransferinstockDs = new List();
- foreach (var detail in input.details)
+ string Code = "";
+ switch (warehouse_instock.id)
{
- WmsRawmatTransferinstockD msRawmatTransferinstockD = new WmsRawmatTransferinstockD();
+ case WmsWareHouseConst.WAREHOUSE_YCL_ID:
+ {
+ WmsRawmatTransferinstockH wmsRawmatTransferinstockH = new WmsRawmatTransferinstockH();
+ Code = await _billRuleService.GetBillNumber("WmsRawMatTransferInstock");
- msRawmatTransferinstockD.bill_id = wmsRawmatTransferinstockH.id;
- msRawmatTransferinstockD.matcode = detail.material_code;
- msRawmatTransferinstockD.unit = detail.unit_code;
- msRawmatTransferinstockD.qty = detail.qty;
- msRawmatTransferinstockD.stock_location = detail.stock_location;
- msRawmatTransferinstockD.code_batch = detail.code_batch;
- msRawmatTransferinstockD.delivery_date = detail.delivery_date.Value.ToString("yyyy-MM-dd HH:mm:ss");
- msRawmatTransferinstockD.erp_line_pk = detail.erp_line_pk;
- msRawmatTransferinstockD.create_id = WmsWareHouseConst.ErpUserId;
- msRawmatTransferinstockD.create_time = DateTime.Now;
- msRawmatTransferinstockD.actual_qty = 0;
+ wmsRawmatTransferinstockH.bill_code = Code;
+ wmsRawmatTransferinstockH.erp_bill_code = input.outsource_order;
+ wmsRawmatTransferinstockH.contact_person = input.contact_person;
+ wmsRawmatTransferinstockH.tel = input.tel;
+ wmsRawmatTransferinstockH.outstockorg_code = input.outstockorg_code;
+ wmsRawmatTransferinstockH.erp_pk = input.erp_pk;
+ wmsRawmatTransferinstockH.create_id = WmsWareHouseConst.ErpUserId;
+ wmsRawmatTransferinstockH.create_time = DateTime.Now;
- var material = await db.Queryable().Where(p => p.code == detail.material_code).FirstAsync();
- if (material != null)
- {
- msRawmatTransferinstockD.matcode_id = material.id;
- msRawmatTransferinstockD.matspecification = material.material_specification;
- }
+ await db.Insertable(wmsRawmatTransferinstockH).ExecuteCommandAsync();
- wmsRawmatTransferinstockDs.Add(msRawmatTransferinstockD);
+
+ List wmsRawmatTransferinstockDs = new List();
+ foreach (var detail in input.details)
+ {
+ WmsRawmatTransferinstockD msRawmatTransferinstockD = new WmsRawmatTransferinstockD();
+
+ msRawmatTransferinstockD.bill_id = wmsRawmatTransferinstockH.id;
+ msRawmatTransferinstockD.matcode = detail.material_code;
+ msRawmatTransferinstockD.unit = detail.unit_code;
+ msRawmatTransferinstockD.qty = detail.qty;
+ msRawmatTransferinstockD.stock_location = detail.stock_location;
+ msRawmatTransferinstockD.code_batch = detail.code_batch;
+ msRawmatTransferinstockD.delivery_date = detail.delivery_date.Value.ToString("yyyy-MM-dd HH:mm:ss");
+ msRawmatTransferinstockD.erp_line_pk = detail.erp_line_pk;
+ msRawmatTransferinstockD.create_id = WmsWareHouseConst.ErpUserId;
+ msRawmatTransferinstockD.create_time = DateTime.Now;
+ msRawmatTransferinstockD.actual_qty = 0;
+ msRawmatTransferinstockD.lineno = detail.lineno;
+ var material = await db.Queryable().Where(p => p.code == detail.material_code).FirstAsync();
+ if (material != null)
+ {
+ msRawmatTransferinstockD.matcode_id = material.id;
+ msRawmatTransferinstockD.matspecification = material.material_specification;
+ }
+
+ wmsRawmatTransferinstockDs.Add(msRawmatTransferinstockD);
+ }
+
+ await db.Insertable(wmsRawmatTransferinstockDs).ExecuteCommandAsync();
+
+ break;
+ }
}
- await db.Insertable(wmsRawmatTransferinstockDs).ExecuteCommandAsync();
await db.Ado.CommitTranAsync();
- LoggerErp2Mes.LogInformation($"【RawMatTransferInstock】成功生成单据:{Code}");
+ LoggerErp2Mes.LogInformation($"【TransferOutstock】成功生成单据:{Code}");
return await ToApiResult(HttpStatusCode.OK, "成功");
}
catch (Exception ex)
{
- LoggerErp2Mes.LogError($"【RawMatTransferInstock】{ex.Message}");
- LoggerErp2Mes.LogError($"【RawMatTransferInstock】{ex.StackTrace}");
+ LoggerErp2Mes.LogError($"【TransferOutstock】{ex.Message}");
+ LoggerErp2Mes.LogError($"【TransferOutstock】{ex.StackTrace}");
await db.Ado.RollbackTranAsync();
return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message);
}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryBindService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryBindService.cs
index fa462e07..fee6a9e7 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryBindService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryBindService.cs
@@ -177,9 +177,9 @@ namespace Tnb.WarehouseMgr
}
var WmsTempCodes = await _db.Queryable().Where(it => input.details.Select(r => r.barcode).Contains(it.barcode)).ToListAsync();
- if (WmsTempCodes.DistinctBy(r => r.required_type).Count() == 1)
+ if (WmsTempCodes.DistinctBy(r => r.required_type).Count() != 1)
{
- throw new Exception($"不能绑定多个不同类型单据打印的条码!:{string.Join(',', WmsTempCodes.DistinctBy(r => r.required_type))}");
+ throw new Exception($"不能绑定多个不同类型单据打印的条码!:{string.Join(',', WmsTempCodes.DistinctBy(r => r.required_type).Select(r => r.barcode).ToList())}");
}
List WmsCarryCodes = new List();
@@ -323,7 +323,7 @@ namespace Tnb.WarehouseMgr
}
await db.Ado.CommitTranAsync();
- Logger.LogError($"【CarryBind】 {input.membercarry_code}成功绑定到{input.carry_code}");
+ Logger.LogInformation($"【CarryBind】 {input.membercarry_code}成功绑定到{input.carry_code}");
}
else
{
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsInStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsInStockService.cs
index 53b4c9ef..8d513b5d 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsInStockService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsInStockService.cs
@@ -293,138 +293,153 @@ namespace Tnb.WarehouseMgr
ArgumentNullException.ThrowIfNull(nameof(instock));
}
- if (instock.sync_status != WmsWareHouseConst.SYNC_STATUS_NONEEDSYNC)
+ // 采购入库
+ if (instock.bill_type == WmsWareHouseConst.BILLTYPE_MATERIALINSTOCK_ID)
{
- //如果是自动单据,需要回更上层系统
- Dictionary pars = new() { { nameof(WmsInstockH.source_id), instock?.source_id ?? string.Empty } };
- dynamic callBackRes = await _prdInstockService.SyncInstock(pars);
- instock!.sync_status = callBackRes == true ? WmsWareHouseConst.SYNC_STATUS__SYNCCOMPLETE : WmsWareHouseConst.SYNC_STATUS__SYNCFAILED;
- _ = await _db.Updateable(instock).UpdateColumns(it => it.sync_status).ExecuteCommandAsync();
- }
- List allInstockDetails = await _db.Queryable().Where(it => it.bill_id == input.requireId).ToListAsync();
- if (allInstockDetails.All(x => x.line_status == WmsWareHouseConst.BILLSTATUS_COMPLETE_ID))
- {
- instock.status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID;
- }
- else
- {
- //任务没有结束,更新状态为工作中
- instock.status = WmsWareHouseConst.BILLSTATUS_ON_ID;
- }
- _ = await _db.Updateable(instock).UpdateColumns(it => it.status).ExecuteCommandAsync();
-
-
-
- WmsTempCode wmsTempCode = await _db.Queryable()
- .LeftJoin((a,b)=>a.barcode==b.barcode)
- .Where((a,b) => a.carry_code == input.wmsDistaskH.carry_code)
- .Select((a,b)=>b)
- .FirstAsync();
-
- string purchaseDId = wmsTempCode?.require_id ?? "";
- WmsPurchaseD wmsPurchaseD = await _db.Queryable().SingleAsync(x=>x.id==purchaseDId);
- string purchaseHId = wmsPurchaseD?.bill_id ?? "";
- WmsPurchaseH wmsPurchaseH = await _db.Queryable().SingleAsync(x=>x.id==purchaseHId);
- string wmsPurchaseOrderHId = wmsPurchaseH?.erp_bill_code ?? "";
- WmsPurchaseOrderH wmsPurchaseOrderH = await _db.Queryable().SingleAsync(x=>x.id==wmsPurchaseOrderHId);
- WmsPurchaseOrderD wmsPurchaseOrderDs = await _db.Queryable().FirstAsync(x=>x.fk_wms_purchase_order_id==wmsPurchaseOrderHId);
-
- List materialIds = allInstockDetails.Select(x=>x.material_id).Distinct().ToList();
- List unitCodes = allInstockDetails.Select(x => x.unit_id).Distinct().ToList();
- List unitDatas = await _db.Queryable()
- .LeftJoin((x, y) => x.Id == y.DictionaryTypeId)
- .Where((x, y) => x.EnCode == DictConst.MeasurementUnit && unitCodes.Contains(y.EnCode))
- .Select((x,y)=>y)
- .ToListAsync();
-
- List tableIds = new List();
- tableIds.Add(_userManager.UserId);
- tableIds.Add(WmsWareHouseConst.AdministratorOrgId);
- tableIds.Add(instock.warehouse_id);
- tableIds.AddRange(materialIds);
- tableIds.Add(instock.supplier_id);
- tableIds.AddRange(unitDatas.Select(x=>x.Id).ToList());
-
- List erpExtendFields = await _db.Queryable().Where(x=>tableIds.Contains(x.table_id)).ToListAsync();
- string erpCreateId = erpExtendFields.Find(x=>x.table_id==instock.create_id)?.user_id ?? "";
- ErpExtendField erpOrg = erpExtendFields.Find(x => x.table_id == (WmsWareHouseConst.AdministratorOrgId));
- string nowStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
-
- List> requestData = new List>();
- Dictionary erpRequestData = new Dictionary();
- erpRequestData.Add("approver",erpCreateId);
- erpRequestData.Add("billmaker",erpCreateId);
- erpRequestData.Add("bitinbill",false);
- erpRequestData.Add("cgeneralhid",null);
- erpRequestData.Add("corpoid",erpOrg.corpoid);
- erpRequestData.Add("corpvid",erpOrg.corpvid);
- erpRequestData.Add("creationtime",nowStr);
- erpRequestData.Add("creator",erpCreateId);
- erpRequestData.Add("ctrantypeid",wmsPurchaseH?.transaction_type ?? "");
- erpRequestData.Add("cvendorid",erpExtendFields.Find(x=>x.table_id==instock.supplier_id)?.supplier_id ?? "");
- erpRequestData.Add("cvendorvid",erpExtendFields.Find(x=>x.table_id==instock.supplier_id)?.supplier_vid ?? "");
- erpRequestData.Add("cwarehouseid",erpExtendFields.Find(x=>x.table_id==instock.warehouse_id)?.cotherwhid ?? "");//类型视图里取
- erpRequestData.Add("dbilldate",nowStr);
- erpRequestData.Add("dmakedate",nowStr);
- erpRequestData.Add("fbillflag",2);
- erpRequestData.Add("fbuysellflag",2);
- erpRequestData.Add("ntotalnum",allInstockDetails.Sum(x=>x.qty));
- erpRequestData.Add("pk_org",erpOrg.pk_org);
- erpRequestData.Add("pk_org_v",erpOrg.pk_org_v);
- erpRequestData.Add("pk_group",erpOrg.pk_group);
- erpRequestData.Add("vbillcode",null);
- erpRequestData.Add("vtrantypecode",null);
-
- List> erpRequestDataDetails = new List>();
- foreach(WmsInstockD item in allInstockDetails)
- {
- erpRequestDataDetails.Add(new Dictionary()
+ if (instock.sync_status != WmsWareHouseConst.SYNC_STATUS_NONEEDSYNC)
{
- ["castunitid"] = erpExtendFields.Find(x=>x.table_id==(unitDatas.Find(x=>x.EnCode==item.unit_id)?.Id ?? ""))?.cunitid ?? "",
- ["cbodytranstypecode"] = wmsPurchaseH?.transaction_type ?? "",
- ["cbodywarehouseid"] = erpExtendFields.Find(x=>x.table_id==instock.warehouse_id)?.cotherwhid ?? "",
- ["cgeneralbid"] = "",
- ["cgeneralhid"] = "",
- ["cmaterialoid"] = erpExtendFields.Find(x=>x.table_id==item.material_id)?.cmaterialoid ?? "",
- ["cmaterialvid"] = erpExtendFields.Find(x=>x.table_id==item.material_id)?.cmaterialvid ?? "",
- ["corpoid"] = erpOrg.corpoid,
- ["corpvid"] = erpOrg.corpvid,
- ["crowno"] = (allInstockDetails.FindIndex(x=>x.id==item.id)+1) * 10,
- ["cunitid"] = erpExtendFields.Find(x=>x.table_id==(unitDatas.Find(x=>x.EnCode==item.unit_id)?.Id ?? ""))?.cunitid ?? "",
- ["cvendorid"] = erpExtendFields.Find(x=>x.table_id==instock.supplier_id)?.supplier_id ?? "",
- ["cvendorvid"] = erpExtendFields.Find(x=>x.table_id==instock.supplier_id)?.supplier_vid ?? "",
- ["dbizdate"] = instock.create_time.ToString("yyyy-MM-dd HH:mm:ss"),
- ["nnum"] = item.qty,
- ["nshouldnum"] = item.pr_qty,
- ["pk_creqwareid"] = erpExtendFields.Find(x=>x.table_id==instock.warehouse_id)?.cotherwhid ?? "",
- ["pk_group"] = erpOrg.pk_group,
- ["pk_org"] = erpOrg.pk_org,
- ["pk_org_v"] = erpOrg.pk_org_v,
- ["pseudocolumn"] = (allInstockDetails.FindIndex(x=>x.id==item.id)+1) * 10,
- ["vbatchcode"] = item.code_batch,
- ["csourcebillhid"] = wmsPurchaseOrderH?.erp_pk ?? "",
- ["csourcebillbid"] = wmsPurchaseOrderDs?.erp_line_pk ?? "",
- ["vsourcebillcode"] = wmsPurchaseOrderH?.erp_bill_code ?? "",
- ["lineno"] = wmsPurchaseOrderDs?.lineno ?? "",
- ["vfree1"] = erpExtendFields.Find(x=>x.table_id==instock.supplier_id)?.supplier_id ?? "",
-
- });
+ //如果是自动单据,需要回更上层系统
+ Dictionary pars = new() { { nameof(WmsInstockH.source_id), instock?.source_id ?? string.Empty } };
+ dynamic callBackRes = await _prdInstockService.SyncInstock(pars);
+ instock!.sync_status = callBackRes == true ? WmsWareHouseConst.SYNC_STATUS__SYNCCOMPLETE : WmsWareHouseConst.SYNC_STATUS__SYNCFAILED;
+ _ = await _db.Updateable(instock).UpdateColumns(it => it.sync_status).ExecuteCommandAsync();
+ }
+ List allInstockDetails = await _db.Queryable().Where(it => it.bill_id == input.requireId).ToListAsync();
+ if (allInstockDetails.All(x => x.line_status == WmsWareHouseConst.BILLSTATUS_COMPLETE_ID))
+ {
+ instock.status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID;
+ }
+ else
+ {
+ //任务没有结束,更新状态为工作中
+ instock.status = WmsWareHouseConst.BILLSTATUS_ON_ID;
+ }
+ _ = await _db.Updateable(instock).UpdateColumns(it => it.status).ExecuteCommandAsync();
+
+
+
+ WmsTempCode wmsTempCode = await _db.Queryable()
+ .LeftJoin((a, b) => a.barcode == b.barcode)
+ .Where((a, b) => a.carry_id == input.wmsDistaskH.carry_id)
+ .Select((a, b) => b)
+ .FirstAsync();
+
+ string purchaseDId = wmsTempCode?.require_id ?? "";
+ WmsPurchaseD wmsPurchaseD = await _db.Queryable().SingleAsync(x => x.id == purchaseDId);
+ string purchaseHId = wmsPurchaseD?.bill_id ?? "";
+ WmsPurchaseH wmsPurchaseH = await _db.Queryable().SingleAsync(x => x.id == purchaseHId);
+ string wmsPurchaseOrderHId = wmsPurchaseH?.erp_bill_code ?? "";
+ WmsPurchaseOrderH wmsPurchaseOrderH = await _db.Queryable().SingleAsync(x => x.id == wmsPurchaseOrderHId);
+ WmsPurchaseOrderD wmsPurchaseOrderDs = await _db.Queryable().FirstAsync(x => x.fk_wms_purchase_order_id == wmsPurchaseOrderHId);
+
+ List materialIds = allInstockDetails.Select(x => x.material_id).Distinct().ToList();
+ List unitCodes = allInstockDetails.Select(x => x.unit_id).Distinct().ToList();
+ List unitDatas = await _db.Queryable()
+ .LeftJoin((x, y) => x.Id == y.DictionaryTypeId)
+ .Where((x, y) => x.EnCode == DictConst.MeasurementUnit && unitCodes.Contains(y.EnCode))
+ .Select((x, y) => y)
+ .ToListAsync();
+
+ List tableIds = new List();
+ tableIds.Add(_userManager.UserId);
+ tableIds.Add(WmsWareHouseConst.AdministratorOrgId);
+ tableIds.Add(instock.warehouse_id);
+ tableIds.AddRange(materialIds);
+ tableIds.Add(instock.supplier_id);
+ tableIds.AddRange(unitDatas.Select(x => x.Id).ToList());
+
+ List erpExtendFields = await _db.Queryable().Where(x => tableIds.Contains(x.table_id)).ToListAsync();
+ string erpCreateId = erpExtendFields.Find(x => x.table_id == instock.create_id)?.user_id ?? "";
+ ErpExtendField erpOrg = erpExtendFields.Find(x => x.table_id == (WmsWareHouseConst.AdministratorOrgId));
+ string nowStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+
+ List> requestData = new List>();
+ Dictionary erpRequestData = new Dictionary();
+ erpRequestData.Add("approver", erpCreateId);
+ erpRequestData.Add("billmaker", erpCreateId);
+ erpRequestData.Add("bitinbill", false);
+ erpRequestData.Add("cgeneralhid", null);
+ erpRequestData.Add("corpoid", erpOrg.corpoid);
+ erpRequestData.Add("corpvid", erpOrg.corpvid);
+ erpRequestData.Add("creationtime", nowStr);
+ erpRequestData.Add("creator", erpCreateId);
+ erpRequestData.Add("ctrantypeid", wmsPurchaseH?.transaction_type ?? "");
+ erpRequestData.Add("cvendorid", erpExtendFields.Find(x => x.table_id == instock.supplier_id)?.supplier_id ?? "");
+ erpRequestData.Add("cvendorvid", erpExtendFields.Find(x => x.table_id == instock.supplier_id)?.supplier_vid ?? "");
+ erpRequestData.Add("cwarehouseid", erpExtendFields.Find(x => x.table_id == instock.warehouse_id)?.cotherwhid ?? "");//类型视图里取
+ erpRequestData.Add("dbilldate", nowStr);
+ erpRequestData.Add("dmakedate", nowStr);
+ erpRequestData.Add("fbillflag", 2);
+ erpRequestData.Add("fbuysellflag", 2);
+ erpRequestData.Add("ntotalnum", allInstockDetails.Sum(x => x.qty));
+ erpRequestData.Add("pk_org", erpOrg.pk_org);
+ erpRequestData.Add("pk_org_v", erpOrg.pk_org_v);
+ erpRequestData.Add("pk_group", erpOrg.pk_group);
+ erpRequestData.Add("vbillcode", null);
+ erpRequestData.Add("vtrantypecode", null);
+
+ List> erpRequestDataDetails = new List>();
+ foreach (WmsInstockD item in allInstockDetails)
+ {
+ erpRequestDataDetails.Add(new Dictionary()
+ {
+ ["castunitid"] = erpExtendFields.Find(x => x.table_id == (unitDatas.Find(x => x.EnCode == item.unit_id)?.Id ?? ""))?.cunitid ?? "",
+ ["cbodytranstypecode"] = wmsPurchaseH?.transaction_type ?? "",
+ ["cbodywarehouseid"] = erpExtendFields.Find(x => x.table_id == instock.warehouse_id)?.cotherwhid ?? "",
+ ["cgeneralbid"] = "",
+ ["cgeneralhid"] = "",
+ ["cmaterialoid"] = erpExtendFields.Find(x => x.table_id == item.material_id)?.cmaterialoid ?? "",
+ ["cmaterialvid"] = erpExtendFields.Find(x => x.table_id == item.material_id)?.cmaterialvid ?? "",
+ ["corpoid"] = erpOrg.corpoid,
+ ["corpvid"] = erpOrg.corpvid,
+ ["crowno"] = (allInstockDetails.FindIndex(x => x.id == item.id) + 1) * 10,
+ ["cunitid"] = erpExtendFields.Find(x => x.table_id == (unitDatas.Find(x => x.EnCode == item.unit_id)?.Id ?? ""))?.cunitid ?? "",
+ ["cvendorid"] = erpExtendFields.Find(x => x.table_id == instock.supplier_id)?.supplier_id ?? "",
+ ["cvendorvid"] = erpExtendFields.Find(x => x.table_id == instock.supplier_id)?.supplier_vid ?? "",
+ ["dbizdate"] = instock.create_time.ToString("yyyy-MM-dd HH:mm:ss"),
+ ["nnum"] = item.qty,
+ ["nshouldnum"] = item.pr_qty,
+ ["pk_creqwareid"] = erpExtendFields.Find(x => x.table_id == instock.warehouse_id)?.cotherwhid ?? "",
+ ["pk_group"] = erpOrg.pk_group,
+ ["pk_org"] = erpOrg.pk_org,
+ ["pk_org_v"] = erpOrg.pk_org_v,
+ ["pseudocolumn"] = (allInstockDetails.FindIndex(x => x.id == item.id) + 1) * 10,
+ ["vbatchcode"] = item.code_batch,
+ ["csourcebillhid"] = wmsPurchaseOrderH?.erp_pk ?? "",
+ ["csourcebillbid"] = wmsPurchaseOrderDs?.erp_line_pk ?? "",
+ ["vsourcebillcode"] = wmsPurchaseOrderH?.erp_bill_code ?? "",
+ ["lineno"] = wmsPurchaseOrderDs?.lineno ?? "",
+ ["vfree1"] = erpExtendFields.Find(x => x.table_id == instock.supplier_id)?.supplier_id ?? "",
+
+ });
+ }
+ erpRequestData.Add("PurchaseInBodyVODtl", erpRequestDataDetails);
+ requestData.Add(erpRequestData);
+
+ ThirdWebapiRecord thirdWebapiRecord = new ThirdWebapiRecord();
+ thirdWebapiRecord.id = SnowflakeIdHelper.NextId();
+ thirdWebapiRecord.third_name = WmsWareHouseConst.BIP;
+ thirdWebapiRecord.name = "采购入库";
+ thirdWebapiRecord.method = "POST";
+ thirdWebapiRecord.url = WmsWareHouseConst.BIP_DOMAIN + "uapws/rest/purchaseIn/save";
+ thirdWebapiRecord.request_data = JsonConvert.SerializeObject(requestData);
+ thirdWebapiRecord.create_time = DateTime.Now;
+ thirdWebapiRecord.remark = "采购收货单号:" + (wmsPurchaseH?.bill_code ?? "");
+ await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
}
- erpRequestData.Add("PurchaseInBodyVODtl",erpRequestDataDetails);
- requestData.Add(erpRequestData);
+ // 委外入库
+ else if (instock.bill_type == WmsWareHouseConst.BILLTYPE_OUTSOURCEINSTOCK_ID)
+ {
+
+ }
+ // 调拨入库
+ else if (instock.bill_type == WmsWareHouseConst.BILLTYPE_RAWMATTRANSFERINSTOCK_ID)
+ {
+
+ }
+
- ThirdWebapiRecord thirdWebapiRecord = new ThirdWebapiRecord();
- thirdWebapiRecord.id = SnowflakeIdHelper.NextId();
- thirdWebapiRecord.third_name = WmsWareHouseConst.BIP;
- thirdWebapiRecord.name = "采购入库";
- thirdWebapiRecord.method = "POST";
- thirdWebapiRecord.url = WmsWareHouseConst.BIP_DOMAIN+"uapws/rest/purchaseIn/save";
- thirdWebapiRecord.request_data = JsonConvert.SerializeObject(requestData);
- thirdWebapiRecord.create_time = DateTime.Now;
- thirdWebapiRecord.remark = "采购收货单号:" + (wmsPurchaseH?.bill_code ?? "");
- await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
-
}
await _db.Ado.CommitTranAsync();
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAScanInStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAScanInStockService.cs
index 0cd90e38..dd690e25 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAScanInStockService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAScanInStockService.cs
@@ -392,7 +392,28 @@ namespace Tnb.WarehouseMgr
var whId = input.data.ContainsKey(nameof(WmsPurchaseH.warehouse_id)) ? input.data[nameof(WmsPurchaseH.warehouse_id)] : "1";
var billCode = input.data.ContainsKey(nameof(WmsPurchaseH.bill_code)) ? input.data[nameof(WmsPurchaseH.bill_code)] : null;
-
+ string bill_type = "";
+ string required_type = (await _dbScanInStockByRedis.Queryable().FirstAsync(it => it.barcode == input.data["物料条码"])).required_type;
+ switch (required_type)
+ {
+ case WmsWareHouseConst.BILLTYPE_PURCHASE_ID:
+ {
+ bill_type = WmsWareHouseConst.BILLTYPE_MATERIALINSTOCK_ID;
+ break;
+ }
+ case WmsWareHouseConst.BILLTYPE_OUTSOURCE_ID:
+ {
+ bill_type = WmsWareHouseConst.BILLTYPE_OUTSOURCEINSTOCK_ID;
+ break;
+ }
+ case WmsWareHouseConst.BILLTYPE_RAWMATTRANSFERINSTOCK_ID:
+ {
+ bill_type = WmsWareHouseConst.BILLTYPE_RAWMATTRANSFERINSTOCK_ID;
+ break;
+ }
+ }
+
+
WmsInstockH instock = new()
{
id = SnowflakeIdHelper.NextId(),
@@ -401,7 +422,7 @@ namespace Tnb.WarehouseMgr
carry_id = carry?.id ?? string.Empty,
location_id = loc?.id ?? string.Empty,
bill_code = _billRullService.GetBillNumber(WmsWareHouseConst.WMS_INSTOCK_ENCODE).GetAwaiter().GetResult(),
- bill_type = WmsWareHouseConst.BILLTYPE_MATERIALINSTOCK_ID,
+ bill_type = bill_type,
biz_type = WmsWareHouseConst.BIZTYPE_WMSINSTOCK_ID,
bill_date = DateTime.Today,
warehouse_id = whId?.ToString() ?? "1",