批号添加
This commit is contained in:
@@ -1056,6 +1056,11 @@
|
||||
数量
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.ErpPurchaseInStockDetailsSaveDto.Lot">
|
||||
<summary>
|
||||
批号
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Core.Dto.Erp.ErpPushDto">
|
||||
<summary>
|
||||
下推
|
||||
|
||||
@@ -893,6 +893,28 @@
|
||||
同步到金蝶后金蝶的单据Id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Domain.Entitys.InStockErpDetails.BatchBillNo">
|
||||
<summary>
|
||||
批号
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Domain.Entitys.InStockErpDetails.FirstBillNo">
|
||||
<summary>
|
||||
箱唛编号-首位
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Domain.Entitys.InStockErpDetails.LastBillNo">
|
||||
<summary>
|
||||
箱唛编号-末尾序号
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Entitys.InStockErpDetails.GenerateBatchBillNo(System.Int32,System.Int32,System.Boolean)">
|
||||
<summary>
|
||||
生成批号
|
||||
</summary>
|
||||
<param name="firstBillNo"></param>
|
||||
<param name="lastBillNo"></param>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Domain.Entitys.InStockTask">
|
||||
<summary>
|
||||
erp入库任务表
|
||||
@@ -2713,6 +2735,12 @@
|
||||
<param name="taskId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Infrastructure.IInStockRepositories.GetLastBillNo">
|
||||
<summary>
|
||||
获取最新的erp明细
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Domain.Infrastructure.IInStockTaskBoxRepositories">
|
||||
<summary>
|
||||
箱与任务单绑定(收货)关系表-仓储接口
|
||||
|
||||
@@ -49,5 +49,11 @@ namespace WMS.Web.Core.Dto.Erp
|
||||
/// </summary>
|
||||
[JsonProperty("FRealQty")]
|
||||
public decimal Qty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 批号
|
||||
/// </summary>
|
||||
[JsonProperty("FLot")]
|
||||
public string Lot { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,5 +55,51 @@ namespace WMS.Web.Domain.Entitys
|
||||
/// </summary>
|
||||
public string ErpSyncBillNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 批号
|
||||
/// </summary>
|
||||
public string BatchBillNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 箱唛编号-首位
|
||||
/// </summary>
|
||||
public int FirstBillNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 箱唛编号-末尾序号
|
||||
/// </summary>
|
||||
public int LastBillNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 生成批号
|
||||
/// </summary>
|
||||
/// <param name="firstBillNo"></param>
|
||||
/// <param name="lastBillNo"></param>
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,5 +81,11 @@ namespace WMS.Web.Domain.Infrastructure
|
||||
/// <param name="taskId"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<ReceiveBoxResponse>> GetInstockBox(int taskId);
|
||||
|
||||
/// <summary>
|
||||
/// 获取最新的erp明细
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task<InStockErpDetails> GetLastBillNo();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -268,6 +268,12 @@ namespace WMS.Web.Domain.Services
|
||||
}
|
||||
}
|
||||
|
||||
//1.获取物料集合和组织集合和供应商的集合
|
||||
var materials = new List<ErpMaterialDto>();
|
||||
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<ErpPurchaseInStockSaveDto>(purchaseInStock, formId);
|
||||
|
||||
@@ -256,7 +256,7 @@ namespace WMS.Web.Repositories.Configuration
|
||||
.WithOne()
|
||||
.HasForeignKey(p => p.Fid)
|
||||
.OnDelete(DeleteBehavior.Cascade);
|
||||
});
|
||||
});
|
||||
builder.Entity<InStockTaskDetails>(ent =>
|
||||
{
|
||||
ent.ToTable("t_erp_instock_task_details");
|
||||
@@ -322,9 +322,9 @@ namespace WMS.Web.Repositories.Configuration
|
||||
v => JsonConvert.SerializeObject(v),
|
||||
v => JsonConvert.DeserializeObject<List<string>>(v),
|
||||
new ValueComparer<List<string>>(
|
||||
(c1,c2)=>c1.SequenceEqual(c2),
|
||||
c=>c.Aggregate(0,(a,v)=>HashCode.Combine(a,v.GetHashCode())),
|
||||
c=>(List<string>)c.ToList()));
|
||||
(c1, c2) => c1.SequenceEqual(c2),
|
||||
c => c.Aggregate(0, (a, v) => HashCode.Combine(a, v.GetHashCode())),
|
||||
c => (List<string>)c.ToList()));
|
||||
});
|
||||
# endregion
|
||||
|
||||
@@ -421,8 +421,11 @@ namespace WMS.Web.Repositories.Configuration
|
||||
public DbSet<InStock> Instock { get; set; }
|
||||
public DbSet<InStockDetails> InStockDetails { get; set; }
|
||||
public DbSet<InStockTotalDetails> InStockTotalDetails { get; set; }
|
||||
|
||||
|
||||
public DbSet<InStockTask> InStockTask { get; set; }
|
||||
|
||||
public DbSet<InStockErpDetails> InStockErpDetails { get; set; }
|
||||
|
||||
public DbSet<InStockTaskBox> InstockTaskBox { get; set; }
|
||||
public DbSet<InStockTaskBoxDetails> InStockTaskBoxDetails { get; set; }
|
||||
public DbSet<InStockTaskDetails> InStockTaskDetails { get; set; }
|
||||
|
||||
@@ -409,5 +409,16 @@ namespace WMS.Web.Repositories
|
||||
|
||||
return (list, total);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 详情-根据最新的ID
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<InStockErpDetails> GetLastBillNo()
|
||||
{
|
||||
var entity = await _context.InStockErpDetails.OrderByDescending(x => x.Id).FirstOrDefaultAsync();
|
||||
return entity;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user