erp转库单同步

This commit is contained in:
2024-07-04 10:53:58 +08:00
parent 7b35c1768e
commit cbe419274e
6 changed files with 77 additions and 45 deletions

View File

@@ -318,6 +318,10 @@
/// </summary> /// </summary>
public const string AdministratorOrgId = "25193668006933"; public const string AdministratorOrgId = "25193668006933";
/// <summary> /// <summary>
/// ERPId(天益4厂)
/// </summary>
public const string ErpUserId = "34995305856535";
/// <summary>
/// 盘点任务计算状态-未结算 /// 盘点任务计算状态-未结算
/// </summary> /// </summary>
public const string CLOSINGSTATUS_WJS_ID = "27674058079509"; public const string CLOSINGSTATUS_WJS_ID = "27674058079509";

View File

@@ -77,11 +77,6 @@ namespace Tnb.WarehouseMgr.Entities.Dto.ErpInputs
/// </summary> /// </summary>
public string? material_code { get; set; } public string? material_code { get; set; }
/// <summary>
/// 规格型号
/// </summary>
public string material_specification { get; set; }
/// <summary> /// <summary>
/// 单位代码 /// 单位代码
/// </summary> /// </summary>
@@ -101,10 +96,5 @@ namespace Tnb.WarehouseMgr.Entities.Dto.ErpInputs
/// 应转主数量 /// 应转主数量
/// </summary> /// </summary>
public decimal? qty { get; set; } public decimal? qty { get; set; }
/// <summary>
/// 物料描述
/// </summary>
public string? material_ex { get; set; }
} }
} }

View File

@@ -124,4 +124,14 @@ public partial class WmsMaterialTransfer : BaseEntity<string>
/// </summary> /// </summary>
public int? remainbindracknum { get; set; } public int? remainbindracknum { get; set; }
/// <summary>
/// erp转库单号
/// </summary>
public string? erp_bill_code { get; set; }
/// <summary>
/// 转库类型
/// </summary>
public string? transfer_type { get; set; }
} }

View File

@@ -8,6 +8,7 @@ using Tnb.WarehouseMgr.Entities;
using Tnb.WarehouseMgr.Entities.Consts; using Tnb.WarehouseMgr.Entities.Consts;
using Tnb.WarehouseMgr.Entities.Dto.ErpInputs; using Tnb.WarehouseMgr.Entities.Dto.ErpInputs;
using Tnb.WarehouseMgr.Entities.Entity; using Tnb.WarehouseMgr.Entities.Entity;
using Top.Api;
namespace Tnb.WarehouseMgr namespace Tnb.WarehouseMgr
{ {
@@ -287,6 +288,26 @@ namespace Tnb.WarehouseMgr
public async Task MaterialTransfer(MaterialTransferInput input) public async Task MaterialTransfer(MaterialTransferInput input)
{ {
var db = _repository.AsSugarClient(); var db = _repository.AsSugarClient();
try
{
}
catch (Exception ex)
{
}
BasWarehouse warehouse_outstock = await db.Queryable<BasWarehouse>().Where(r => r.whcode == input.warehouse_outstock).FirstAsync();
BasWarehouse warehouse_instock = await db.Queryable<BasWarehouse>().Where(r => r.whcode == input.warehouse_instock).FirstAsync();
if (warehouse_outstock == null)
{
}
WmsMaterialTransfer wmsMaterialTransfer = new WmsMaterialTransfer(); WmsMaterialTransfer wmsMaterialTransfer = new WmsMaterialTransfer();
string Code = await _billRuleService.GetBillNumber("MaterialTransfer"); string Code = await _billRuleService.GetBillNumber("MaterialTransfer");
wmsMaterialTransfer.bill_code = Code; wmsMaterialTransfer.bill_code = Code;
@@ -300,26 +321,24 @@ namespace Tnb.WarehouseMgr
wmsMaterialTransfer.depart_in = input.depart_in; wmsMaterialTransfer.depart_in = input.depart_in;
wmsMaterialTransfer.deliver_date = input.deliver_date; wmsMaterialTransfer.deliver_date = input.deliver_date;
wmsMaterialTransfer.arrival_date = input.arrival_date; wmsMaterialTransfer.arrival_date = input.arrival_date;
wmsMaterialTransfer.create_id = ""; wmsMaterialTransfer.create_id = WmsWareHouseConst.ErpUserId;
wmsMaterialTransfer.create_time = DateTime.Now; wmsMaterialTransfer.create_time = DateTime.Now;
wmsMaterialTransfer.org_id = WmsWareHouseConst.AdministratorOrgId; wmsMaterialTransfer.org_id = WmsWareHouseConst.AdministratorOrgId;
wmsMaterialTransfer.erp_bill_code = input.bill_code;
await db.Insertable(wmsMaterialTransfer).ExecuteCommandAsync(); await db.Insertable(wmsMaterialTransfer).ExecuteCommandAsync();
List<WmsMaterialTransferD> wmsMaterialTransferDs = new List<WmsMaterialTransferD>(); List<WmsMaterialTransferD> wmsMaterialTransferDs = new List<WmsMaterialTransferD>();
foreach (var detail in input.details) foreach (var detail in input.details)
{ {
WmsMaterialTransferD wmsMaterialTransferD = new WmsMaterialTransferD(); WmsMaterialTransferD wmsMaterialTransferD = new WmsMaterialTransferD();
wmsMaterialTransferD.lineno = detail.lineno; wmsMaterialTransferD.lineno = detail.lineno;
wmsMaterialTransferD.material_code = detail.material_code; wmsMaterialTransferD.material_code = detail.material_code;
wmsMaterialTransferD.material_specification = detail.material_specification;
wmsMaterialTransferD.unit_code = detail.unit_code; wmsMaterialTransferD.unit_code = detail.unit_code;
wmsMaterialTransferD.code_batch = detail.code_batch; wmsMaterialTransferD.code_batch = detail.code_batch;
wmsMaterialTransferD.station_code = detail.station_code; wmsMaterialTransferD.station_code = detail.station_code;
wmsMaterialTransferD.qty = detail.qty; wmsMaterialTransferD.qty = detail.qty;
wmsMaterialTransferD.bill_id = ""; wmsMaterialTransferD.bill_id = "";
wmsMaterialTransferD.material_specification = detail.material_ex;
var material = await db.Queryable<BasMaterial>().Where(p => p.code == detail.material_code).FirstAsync(); var material = await db.Queryable<BasMaterial>().Where(p => p.code == detail.material_code).FirstAsync();
if (material != null) if (material != null)

View File

@@ -658,6 +658,13 @@ namespace Tnb.WarehouseMgr
List<WmsMaterialTransferD> wmsMaterialTransferds = _db.Queryable<WmsMaterialTransferD>().Where(r => r.bill_id == input.source_id).ToList(); List<WmsMaterialTransferD> wmsMaterialTransferds = _db.Queryable<WmsMaterialTransferD>().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<WmsMaterialTransferCarry> wmsMaterialTransferCarrys = new List<WmsMaterialTransferCarry>(); List<WmsMaterialTransferCarry> wmsMaterialTransferCarrys = new List<WmsMaterialTransferCarry>();

View File

@@ -318,50 +318,52 @@ public class BillRuleService : IBillRullService, IDynamicApiController, ITransie
/// <returns></returns> /// <returns></returns>
private async Task<string> GetNumber(string enCode) private async Task<string> GetNumber(string enCode)
{ {
ISqlSugarClient db = _repository.CopyNew(); using (ISqlSugarClient db = _repository.CopyNew())
StringBuilder strNumber = new StringBuilder();
var entity = db.Queryable<BillRuleEntity>().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)
{ {
// 处理隔天流水号归0 StringBuilder strNumber = new StringBuilder();
if (entity.OutputNumber != null) var entity = db.Queryable<BillRuleEntity>().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); // 处理隔天流水号归0
var thisDate = entity.DateFormat == "no" ? string.Empty : DateTime.Now.ToString(entity.DateFormat); if (entity.OutputNumber != null)
if (serialDate != thisDate)
{ {
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 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 else
{ {
entity.ThisNumber = 0; strNumber.Append("单据规则不存在");
} }
// 拼接单据编码 return strNumber.ToString();
// 前缀
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
{
strNumber.Append("单据规则不存在");
}
return strNumber.ToString();
} }
#endregion #endregion
} }