From cbe419274e845eb00227405079270e3f18fc9bc6 Mon Sep 17 00:00:00 2001
From: majian <780924089@qq.com>
Date: Thu, 4 Jul 2024 10:53:58 +0800
Subject: [PATCH] =?UTF-8?q?erp=E8=BD=AC=E5=BA=93=E5=8D=95=E5=90=8C?=
=?UTF-8?q?=E6=AD=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Consts/WmsWareHouseConst.cs | 4 ++
.../Dto/ErpInputs/MaterialTransferInput.cs | 10 ---
.../Entity/WmsMaterialTransfer.cs | 10 +++
.../Tnb.WarehouseMgr/ErpToWmsService.cs | 27 ++++++--
.../WmsMaterialTransferService.cs | 7 ++
system/Tnb.Systems/System/BillRuleService.cs | 64 ++++++++++---------
6 files changed, 77 insertions(+), 45 deletions(-)
diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs
index 03775ecf..beedd9b8 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs
@@ -318,6 +318,10 @@
///
public const string AdministratorOrgId = "25193668006933";
///
+ /// ERPId(天益4厂)
+ ///
+ public const string ErpUserId = "34995305856535";
+ ///
/// 盘点任务计算状态-未结算
///
public const string CLOSINGSTATUS_WJS_ID = "27674058079509";
diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/ErpInputs/MaterialTransferInput.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/ErpInputs/MaterialTransferInput.cs
index a4518e10..f34e5b4e 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/ErpInputs/MaterialTransferInput.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/ErpInputs/MaterialTransferInput.cs
@@ -77,11 +77,6 @@ namespace Tnb.WarehouseMgr.Entities.Dto.ErpInputs
///
public string? material_code { get; set; }
- ///
- /// 规格型号
- ///
- public string material_specification { get; set; }
-
///
/// 单位代码
///
@@ -101,10 +96,5 @@ namespace Tnb.WarehouseMgr.Entities.Dto.ErpInputs
/// 应转主数量
///
public decimal? qty { get; set; }
-
- ///
- /// 物料描述
- ///
- public string? material_ex { get; set; }
}
}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsMaterialTransfer.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsMaterialTransfer.cs
index a02aa0f3..9aa556cb 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsMaterialTransfer.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsMaterialTransfer.cs
@@ -124,4 +124,14 @@ public partial class WmsMaterialTransfer : BaseEntity
///
public int? remainbindracknum { get; set; }
+ ///
+ /// erp转库单号
+ ///
+ public string? erp_bill_code { get; set; }
+
+ ///
+ /// 转库类型
+ ///
+ public string? transfer_type { get; set; }
+
}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs b/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs
index 43a7fe3d..a1475505 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs
@@ -8,6 +8,7 @@ using Tnb.WarehouseMgr.Entities;
using Tnb.WarehouseMgr.Entities.Consts;
using Tnb.WarehouseMgr.Entities.Dto.ErpInputs;
using Tnb.WarehouseMgr.Entities.Entity;
+using Top.Api;
namespace Tnb.WarehouseMgr
{
@@ -287,6 +288,26 @@ namespace Tnb.WarehouseMgr
public async Task MaterialTransfer(MaterialTransferInput input)
{
var db = _repository.AsSugarClient();
+
+ try
+ {
+
+ }
+ catch (Exception ex)
+ {
+
+ }
+
+
+ BasWarehouse warehouse_outstock = await db.Queryable().Where(r => r.whcode == input.warehouse_outstock).FirstAsync();
+ BasWarehouse warehouse_instock = await db.Queryable().Where(r => r.whcode == input.warehouse_instock).FirstAsync();
+ if (warehouse_outstock == null)
+ {
+
+ }
+
+
+
WmsMaterialTransfer wmsMaterialTransfer = new WmsMaterialTransfer();
string Code = await _billRuleService.GetBillNumber("MaterialTransfer");
wmsMaterialTransfer.bill_code = Code;
@@ -300,26 +321,24 @@ namespace Tnb.WarehouseMgr
wmsMaterialTransfer.depart_in = input.depart_in;
wmsMaterialTransfer.deliver_date = input.deliver_date;
wmsMaterialTransfer.arrival_date = input.arrival_date;
- wmsMaterialTransfer.create_id = "";
+ wmsMaterialTransfer.create_id = WmsWareHouseConst.ErpUserId;
wmsMaterialTransfer.create_time = DateTime.Now;
wmsMaterialTransfer.org_id = WmsWareHouseConst.AdministratorOrgId;
+ wmsMaterialTransfer.erp_bill_code = input.bill_code;
await db.Insertable(wmsMaterialTransfer).ExecuteCommandAsync();
-
List wmsMaterialTransferDs = new List();
foreach (var detail in input.details)
{
WmsMaterialTransferD wmsMaterialTransferD = new WmsMaterialTransferD();
wmsMaterialTransferD.lineno = detail.lineno;
wmsMaterialTransferD.material_code = detail.material_code;
- wmsMaterialTransferD.material_specification = detail.material_specification;
wmsMaterialTransferD.unit_code = detail.unit_code;
wmsMaterialTransferD.code_batch = detail.code_batch;
wmsMaterialTransferD.station_code = detail.station_code;
wmsMaterialTransferD.qty = detail.qty;
wmsMaterialTransferD.bill_id = "";
- wmsMaterialTransferD.material_specification = detail.material_ex;
var material = await db.Queryable().Where(p => p.code == detail.material_code).FirstAsync();
if (material != null)
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs
index c1b4a939..795b37cf 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs
@@ -658,6 +658,13 @@ namespace Tnb.WarehouseMgr
List wmsMaterialTransferds = _db.Queryable().Where(r => r.bill_id == input.source_id).ToList();
+ int count = wmsMaterialTransferds.Where(r => string.IsNullOrEmpty(r.station_code)).Count();
+ if (count > 0)
+ {
+ Logger.LogWarning($@"转库单{wmsMaterialTransfer.bill_code}表体存在未填写工位的明细!");
+ throw new AppFriendlyException($@"转库单{wmsMaterialTransfer.bill_code}表体存在未填写工位的明细!", 500);
+ }
+
// 转库单载具子表
List wmsMaterialTransferCarrys = new List();
diff --git a/system/Tnb.Systems/System/BillRuleService.cs b/system/Tnb.Systems/System/BillRuleService.cs
index 8c603332..d60eacca 100644
--- a/system/Tnb.Systems/System/BillRuleService.cs
+++ b/system/Tnb.Systems/System/BillRuleService.cs
@@ -318,50 +318,52 @@ public class BillRuleService : IBillRullService, IDynamicApiController, ITransie
///
private async Task GetNumber(string enCode)
{
- ISqlSugarClient db = _repository.CopyNew();
- StringBuilder strNumber = new StringBuilder();
- var entity = db.Queryable().Where(m => m.EnCode == enCode && m.DeleteMark == null).ToList()[0];
- //var entity = await _repository.GetFirstAsync(m => m.EnCode == enCode && m.DeleteMark == null);
- if (entity != null)
+ using (ISqlSugarClient db = _repository.CopyNew())
{
- // 处理隔天流水号归0
- if (entity.OutputNumber != null)
+ StringBuilder strNumber = new StringBuilder();
+ var entity = db.Queryable().Where(m => m.EnCode == enCode && m.DeleteMark == null).ToList()[0];
+ //var entity = await _repository.GetFirstAsync(m => m.EnCode == enCode && m.DeleteMark == null);
+ if (entity != null)
{
- var serialDate = entity.OutputNumber.Remove(entity.OutputNumber.Length - (int)entity.Digit).Replace(entity.Prefix, string.Empty);
- var thisDate = entity.DateFormat == "no" ? string.Empty : DateTime.Now.ToString(entity.DateFormat);
- if (serialDate != thisDate)
+ // 处理隔天流水号归0
+ if (entity.OutputNumber != null)
{
- entity.ThisNumber = 0;
+ var serialDate = entity.OutputNumber.Remove(entity.OutputNumber.Length - (int)entity.Digit).Replace(entity.Prefix, string.Empty);
+ var thisDate = entity.DateFormat == "no" ? string.Empty : DateTime.Now.ToString(entity.DateFormat);
+ if (serialDate != thisDate)
+ {
+ entity.ThisNumber = 0;
+ }
+ else
+ {
+ entity.ThisNumber++;
+ }
}
else
{
- entity.ThisNumber++;
+ entity.ThisNumber = 0;
}
+
+ // 拼接单据编码
+ // 前缀
+ strNumber.Append(entity.Prefix);
+ if (entity.DateFormat != "no")
+ strNumber.Append(DateTime.Now.ToString(entity.DateFormat)); // 日期格式
+
+ var number = int.Parse(entity.StartNumber) + entity.ThisNumber;
+ strNumber.Append(number.ToString().PadLeft((int)entity.Digit, '0')); // 流水号
+ entity.OutputNumber = strNumber.ToString();
+ var str = strNumber.ToString();
+ // 更新流水号
+ await db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).CallEntityMethod(m => m.LastModify()).ExecuteCommandHasChangeAsync();
}
else
{
- entity.ThisNumber = 0;
+ strNumber.Append("单据规则不存在");
}
- // 拼接单据编码
- // 前缀
- strNumber.Append(entity.Prefix);
- if (entity.DateFormat != "no")
- strNumber.Append(DateTime.Now.ToString(entity.DateFormat)); // 日期格式
-
- var number = int.Parse(entity.StartNumber) + entity.ThisNumber;
- strNumber.Append(number.ToString().PadLeft((int)entity.Digit, '0')); // 流水号
- entity.OutputNumber = strNumber.ToString();
- var str = strNumber.ToString();
- // 更新流水号
- await db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).CallEntityMethod(m => m.LastModify()).ExecuteCommandHasChangeAsync();
+ return strNumber.ToString();
}
- else
- {
- strNumber.Append("单据规则不存在");
- }
-
- return strNumber.ToString();
}
#endregion
}
\ No newline at end of file