From 7714e8e376ed1735980800338738ee1194321ca8 Mon Sep 17 00:00:00 2001
From: tongfei <244188119@qq.com>
Date: Thu, 28 Mar 2024 09:04:27 +0800
Subject: [PATCH] =?UTF-8?q?=E6=89=B9=E5=8F=B7=E6=B7=BB=E5=8A=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 5 ++
src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 28 +++++++++++
.../Dto/Erp/ErpPurchaseInStockSaveDto.cs | 6 +++
.../Entitys/InStockErpDetails.cs | 46 +++++++++++++++++++
.../Infrastructure/IInStockRepositories.cs | 6 +++
src/WMS.Web.Domain/Services/InStockService.cs | 24 ++++++++++
.../Configuration/RepositoryDbContext.cs | 13 ++++--
.../InStockRepositories.cs | 11 +++++
8 files changed, 134 insertions(+), 5 deletions(-)
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
index 21699bfd..bdccb4ce 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
@@ -1056,6 +1056,11 @@
数量
+
+
+ 批号
+
+
下推
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
index 76441049..5e059a52 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
@@ -893,6 +893,28 @@
同步到金蝶后金蝶的单据Id
+
+
+ 批号
+
+
+
+
+ 箱唛编号-首位
+
+
+
+
+ 箱唛编号-末尾序号
+
+
+
+
+ 生成批号
+
+
+
+
erp入库任务表
@@ -2713,6 +2735,12 @@
+
+
+ 获取最新的erp明细
+
+
+
箱与任务单绑定(收货)关系表-仓储接口
diff --git a/src/WMS.Web.Core/Dto/Erp/ErpPurchaseInStockSaveDto.cs b/src/WMS.Web.Core/Dto/Erp/ErpPurchaseInStockSaveDto.cs
index 44c08a8c..85140c4c 100644
--- a/src/WMS.Web.Core/Dto/Erp/ErpPurchaseInStockSaveDto.cs
+++ b/src/WMS.Web.Core/Dto/Erp/ErpPurchaseInStockSaveDto.cs
@@ -49,5 +49,11 @@ namespace WMS.Web.Core.Dto.Erp
///
[JsonProperty("FRealQty")]
public decimal Qty { get; set; }
+
+ ///
+ /// 批号
+ ///
+ [JsonProperty("FLot")]
+ public string Lot { get; set; }
}
}
diff --git a/src/WMS.Web.Domain/Entitys/InStockErpDetails.cs b/src/WMS.Web.Domain/Entitys/InStockErpDetails.cs
index dd669748..65a8cce3 100644
--- a/src/WMS.Web.Domain/Entitys/InStockErpDetails.cs
+++ b/src/WMS.Web.Domain/Entitys/InStockErpDetails.cs
@@ -55,5 +55,51 @@ namespace WMS.Web.Domain.Entitys
///
public string ErpSyncBillNo { get; set; }
+ ///
+ /// 批号
+ ///
+ public string BatchBillNo { get; set; }
+
+ ///
+ /// 箱唛编号-首位
+ ///
+ public int FirstBillNo { get; set; }
+
+ ///
+ /// 箱唛编号-末尾序号
+ ///
+ public int LastBillNo { get; set; }
+
+ ///
+ /// 生成批号
+ ///
+ ///
+ ///
+ public void GenerateBatchBillNo(int firstBillNo,int lastBillNo,bool isBatchManage)
+ {
+ if (isBatchManage)
+ {
+ this.FirstBillNo = Convert.ToInt32(DateTime.Now.ToString("yyMMdd"));
+ if (this.FirstBillNo == firstBillNo)
+ this.LastBillNo = lastBillNo + 1;
+ else
+ this.LastBillNo = 1;
+
+ if (this.LastBillNo.ToString().Length >= 6)
+ {
+ this.BatchBillNo = "W" + this.FirstBillNo + this.LastBillNo;
+ return;
+ }
+
+ string lastStr = this.LastBillNo.ToString();
+ while (true)
+ {
+ lastStr = "0" + lastStr;
+ if (lastStr.Length >= 6) break;
+ }
+ this.BatchBillNo = "W" + this.FirstBillNo + lastStr;
+ }
+ }
+
}
}
diff --git a/src/WMS.Web.Domain/Infrastructure/IInStockRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IInStockRepositories.cs
index b72dc52f..054cff5a 100644
--- a/src/WMS.Web.Domain/Infrastructure/IInStockRepositories.cs
+++ b/src/WMS.Web.Domain/Infrastructure/IInStockRepositories.cs
@@ -81,5 +81,11 @@ namespace WMS.Web.Domain.Infrastructure
///
///
Task> GetInstockBox(int taskId);
+
+ ///
+ /// 获取最新的erp明细
+ ///
+ ///
+ Task GetLastBillNo();
}
}
diff --git a/src/WMS.Web.Domain/Services/InStockService.cs b/src/WMS.Web.Domain/Services/InStockService.cs
index 3e6ac22b..1119881a 100644
--- a/src/WMS.Web.Domain/Services/InStockService.cs
+++ b/src/WMS.Web.Domain/Services/InStockService.cs
@@ -268,6 +268,12 @@ namespace WMS.Web.Domain.Services
}
}
+ //1.获取物料集合和组织集合和供应商的集合
+ var materials = new List();
+ var materials_result = await _erpService.BillQueryForMaterial();
+ if (materials_result.IsSuccess)
+ materials = materials_result.Data.ToList();
+
//1.获取来源单
var taskIds = dto.Details.GroupBy(x => x.TaskId).Select(x => x.Key).ToList();
var tasks = await _inStockTaskRepositories.GetList(taskIds);
@@ -302,6 +308,23 @@ namespace WMS.Web.Domain.Services
Qty = x.Sum(t => t.Qty)
}).ToList();
+ //1.获取最新的erp明细信息
+ var billNo_new = await _inStockRepositories.GetLastBillNo();
+ //erp明细:生成批号
+ int new_firstBillNo = billNo_new == null ? 0 : billNo_new.FirstBillNo;
+ int new_lastBillNo = billNo_new == null ? 0 : billNo_new.LastBillNo;
+ entity.ErpDetails.ForEach(x =>
+ {
+ //物料必须是启动了批号管理才生成批号
+ var mat= materials.Where(m => m.MaterialNumber == x.MaterialNumber && m.OrgCode == entity.OrgCode).FirstOrDefault();
+ if (mat != null)
+ {
+ x.GenerateBatchBillNo(new_firstBillNo, new_lastBillNo, mat.IsBatchManage);
+ new_firstBillNo = x.FirstBillNo;
+ new_lastBillNo = x.LastBillNo;
+ }
+ });
+
//序列号集:箱里面的
var serialNumbers = await _serialNumbersRepositories.GetEntityListByBoxIds(dto.Details.GroupBy(x => x.BoxId).Select(x => x.Key).ToList());
@@ -766,6 +789,7 @@ namespace WMS.Web.Domain.Services
var resPurchaseInStock = await sc_erpService.BillQueryForPurchaseInStock(id);
var purchaseInStock = resPurchaseInStock.Data;
purchaseInStock.Details[0].Qty = erpDetail.Qty;
+ purchaseInStock.Details[0].Lot = erpDetail.BatchBillNo;
string formId = dto.TargetFormId.ToString();
_logger.LogInformation($"入库单->开始同步金蝶 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId} 数据: {JsonConvert.SerializeObject(dto)}");
var res_s = await sc_erpService.Save(purchaseInStock, formId);
diff --git a/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs b/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs
index c75ef90a..23cda365 100644
--- a/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs
+++ b/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs
@@ -256,7 +256,7 @@ namespace WMS.Web.Repositories.Configuration
.WithOne()
.HasForeignKey(p => p.Fid)
.OnDelete(DeleteBehavior.Cascade);
- });
+ });
builder.Entity(ent =>
{
ent.ToTable("t_erp_instock_task_details");
@@ -322,9 +322,9 @@ namespace WMS.Web.Repositories.Configuration
v => JsonConvert.SerializeObject(v),
v => JsonConvert.DeserializeObject>(v),
new ValueComparer>(
- (c1,c2)=>c1.SequenceEqual(c2),
- c=>c.Aggregate(0,(a,v)=>HashCode.Combine(a,v.GetHashCode())),
- c=>(List)c.ToList()));
+ (c1, c2) => c1.SequenceEqual(c2),
+ c => c.Aggregate(0, (a, v) => HashCode.Combine(a, v.GetHashCode())),
+ c => (List)c.ToList()));
});
# endregion
@@ -421,8 +421,11 @@ namespace WMS.Web.Repositories.Configuration
public DbSet Instock { get; set; }
public DbSet InStockDetails { get; set; }
public DbSet InStockTotalDetails { get; set; }
-
+
public DbSet InStockTask { get; set; }
+
+ public DbSet InStockErpDetails { get; set; }
+
public DbSet InstockTaskBox { get; set; }
public DbSet InStockTaskBoxDetails { get; set; }
public DbSet InStockTaskDetails { get; set; }
diff --git a/src/WMS.Web.Repositories/InStockRepositories.cs b/src/WMS.Web.Repositories/InStockRepositories.cs
index 6edb9da5..4eb00e19 100644
--- a/src/WMS.Web.Repositories/InStockRepositories.cs
+++ b/src/WMS.Web.Repositories/InStockRepositories.cs
@@ -409,5 +409,16 @@ namespace WMS.Web.Repositories
return (list, total);
}
+
+ ///
+ /// 详情-根据最新的ID
+ ///
+ ///
+ ///
+ public async Task GetLastBillNo()
+ {
+ var entity = await _context.InStockErpDetails.OrderByDescending(x => x.Id).FirstOrDefaultAsync();
+ return entity;
+ }
}
}