出库单结构调整

This commit is contained in:
18942506660
2023-11-16 11:42:37 +08:00
parent 865bc0d5df
commit dab5b29c53
8 changed files with 120 additions and 43 deletions

View File

@@ -3541,10 +3541,10 @@
出库数量
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.OutStock.SaveOutStockDetailsRequest.Box_Dic">
<summary>
箱信息和对应的出库数量
</summary>
<member name="P:WMS.Web.Core.Dto.OutStock.SaveOutStockDetailsRequest.BoxId">
<summary>
箱Id
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.OutStock.SaveOutStockDetailsRequest.SerialNumbers">
<summary>

View File

@@ -1016,16 +1016,6 @@
单据头Id
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.OutStockDetails.SaleBillNos">
<summary>
销售订单号
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.OutStockDetails.SourceBillNos">
<summary>
来源单号
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.OutStockDetails.MaterialId">
<summary>
物料Id
@@ -1051,6 +1041,46 @@
出库数量
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.OutStockDetails.ErpDetails">
<summary>
对应erp明细 同一个物料 存在于不同的来源单中(合并后出现多条)
</summary>
</member>
<member name="T:WMS.Web.Domain.Entitys.OutStockErpDetails">
<summary>
对应金蝶的明细
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.OutStockErpDetails.Id">
<summary>
主键 订单编号
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.OutStockErpDetails.DetailId">
<summary>
任务单明细Id
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.OutStockErpDetails.Erp_DetailId">
<summary>
对应金蝶单据明细id(销售出库同步金蝶下推使用)
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.OutStockErpDetails.SourceBillNo">
<summary>
来源单号
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.OutStockErpDetails.SaleBillNo">
<summary>
销售订单号
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.OutStockErpDetails.Qty">
<summary>
出库数量
</summary>
</member>
<member name="T:WMS.Web.Domain.Entitys.OutStockTask">
<summary>
erp出库任务单

View File

@@ -25,17 +25,6 @@ namespace WMS.Web.Domain.Entitys
/// </summary>
[Column("Fid")]
public int Fid { get; set; }
/// <summary>
/// 销售订单号
///</summary>
[Column("SaleBillNo")]
public List<string> SaleBillNos { get; set; }
/// <summary>
/// 来源单号
///</summary>
[Column("SourceBillNo")]
public List<string> SourceBillNos { get; set; }
/// <summary>
/// 物料Id
///</summary>
@@ -61,5 +50,10 @@ namespace WMS.Web.Domain.Entitys
///</summary>
[Column("Qty")]
public decimal Qty { get; set; }
/// <summary>
/// 对应erp明细 同一个物料 存在于不同的来源单中(合并后出现多条)
/// </summary>
public List<OutStockErpDetails> ErpDetails { get; set; } = new List<OutStockErpDetails>();
}
}

View File

@@ -0,0 +1,48 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text;
using WMS.Web.Core;
namespace WMS.Web.Domain.Entitys
{
/// <summary>
/// 对应金蝶的明细
/// </summary>
[Serializable]
[Table("t_erp_outstock_erp_details")]
public class OutStockErpDetails : EntityBase
{
public OutStockErpDetails() { }
/// <summary>
/// 主键 订单编号
/// </summary>
[Column("Id")]
public override int Id { get; set; }
/// <summary>
/// 任务单明细Id
/// </summary>
[Column("DetailId")]
public int DetailId { get; set; }
/// <summary>
/// 对应金蝶单据明细id(销售出库同步金蝶下推使用)
/// </summary>
[Column("Erp_DetailId")]
public int Erp_DetailId { get; set; }
/// <summary>
/// 来源单号
///</summary>
[Column("SourceBillNo")]
public string SourceBillNo { get; set; }
/// <summary>
/// 销售订单号
///</summary>
[Column("SaleBillNo")]
public string SaleBillNo { get; set; }
/// <summary>
/// 出库数量
///</summary>
[Column("Qty")]
public decimal Qty { get; set; }
}
}

View File

@@ -204,14 +204,14 @@ namespace WMS.Web.Domain.Services
OperateTime = DateTime.Now,
OperateType = OutStockTypeConvert(outStock.Type),
OperateUser = userName,
Remark = "来源单号:" + string.Join(",", outstockDetail.SourceBillNos) + "\r\n" + "出库单号:" + outStock.BillNo
Remark = "来源单号:" + string.Join(",", outstockDetail.ErpDetails.Select(s=>s.SourceBillNo)) + "\r\n" + "出库单号:" + outStock.BillNo
};
if (outStock.Type == OutStockType.Sal)
{
var detail = outStock.Details.FirstOrDefault(f => f.MaterialId == entity.MaterialId);
var res_c = await _erpService.BillQueryForCustomer();
var customer = res_c.Data.FirstOrDefault(f => f.Id == outStock.ReceiptCustomerId);
op.Remark += "\r\n" + "销售订单号:" + string.Join(",", detail.SaleBillNos);
op.Remark += "\r\n" + "销售订单号:" + string.Join(",", detail.ErpDetails.Select(s => s.SaleBillNo));
op.Remark += "\r\n" + "客户:" + customer?.Name;
}
sList.Add(op);

View File

@@ -99,13 +99,16 @@ namespace WMS.Web.Repositories.Configuration
v => JsonConvert.SerializeObject(v),
v => JsonConvert.DeserializeObject<List<string>>(v));
ent.Property(f => f.SourceBillNos).HasConversion(
v => JsonConvert.SerializeObject(v),
v => JsonConvert.DeserializeObject<List<string>>(v));
ent.HasMany(p => p.ErpDetails)
.WithOne()
.HasForeignKey(p => p.DetailId)
.OnDelete(DeleteBehavior.Cascade);
});
ent.Property(f => f.SaleBillNos).HasConversion(
v => JsonConvert.SerializeObject(v),
v => JsonConvert.DeserializeObject<List<string>>(v));
builder.Entity<OutStockErpDetails>(ent =>
{
ent.ToTable("t_erp_outstock_erp_details");
ent.HasKey(x => x.Id);
});
#endregion
@@ -292,6 +295,7 @@ namespace WMS.Web.Repositories.Configuration
public DbSet<OutStockTask> OutStockTask { get; set; }
public DbSet<TakeStock> TakeStock { get; set; }
public DbSet<OutStockDetails> OutStockDetails { get; set; }
public DbSet<OutStockErpDetails> OutStockErpDetails { get; set; }
public DbSet<OutStockTaskDetails> OutStockTaskDetails { get; set; }
public DbSet<OutStockTaskErpDetails> OutStockTaskErpDetails { get; set; }
public DbSet<TakeStockDetails> TakeStockDetails { get; set; }

View File

@@ -118,7 +118,7 @@ namespace WMS.Web.Repositories
#endregion
var query = _context.OutStockDetails
var query = _context.OutStockDetails.Include(x => x.ErpDetails)
.GroupJoin(_context.OutStock, detail => detail.Fid, order => order.Id, (detail, orders) => new { detail, orders })
.SelectMany(x => x.orders.DefaultIfEmpty(), (p, order) => new { p.detail, order })
.OrderByDescending(o => o.order.Id)
@@ -164,8 +164,8 @@ namespace WMS.Web.Repositories
CreateTime = s.order.CreateTime.DateToStringSeconds(),
SuccessSync = s.order.SuccessSync,
Stock = _singleDataService.GetSingleData(SingleAction.Stocks, _loginRepositories.CompanyId, s.detail.StockCode),
SourceBillNo =string.Join(",",s.detail.SourceBillNos),
SaleBillNo = string.Join(",", s.detail.SaleBillNos),
SourceBillNo = string.Join(",", s.detail.ErpDetails.Select(s => s.SourceBillNo)),
SaleBillNo = string.Join(",", s.detail.ErpDetails.Select(s => s.SaleBillNo)),
DeliveryOrg = _erpBasicDataExtendService.GetOrgName(orgs, s.order.DeliveryOrgId),
ReceiptCustomer = s.order.Type == OutStockType.Sal
? _erpBasicDataExtendService.GetCustomerName(customers, s.order.ReceiptCustomerId)
@@ -196,12 +196,12 @@ namespace WMS.Web.Repositories
List<int> list = entitys.Select(s => s.Id).ToList();
var res = await _context.OutStock
.Include(s => s.Details)
.Include(s => s.Details).ThenInclude(s => s.ErpDetails)
.Where(f => list.Contains(f.Id)).ToListAsync();
_mapper.ToMapList(entitys, res);
_mapper.ToMapList(entitys.SelectMany(s => s.Details).ToList(), res.SelectMany(s => s.Details).ToList());
_mapper.ToMapList(entitys.SelectMany(s => s.Details).SelectMany(s => s.ErpDetails).ToList(), res.SelectMany(s => s.Details).SelectMany(s => s.ErpDetails).ToList());
await _context.SaveChangesAsync();
if (_transaction != null)
_transaction.Commit();
@@ -223,7 +223,7 @@ namespace WMS.Web.Repositories
public async Task<List<OutStock>> GetEntityList(List<int> ids)
{
var res = await _context.OutStock
.Include(s => s.Details)
.Include(s => s.Details).ThenInclude(s => s.ErpDetails)
.Where(f => ids.Contains(f.Id))
.ToListAsync();
@@ -244,12 +244,13 @@ namespace WMS.Web.Repositories
try
{
var res = await _context.OutStock
.Include(s => s.Details)
.Include(s => s.Details).ThenInclude(s => s.ErpDetails)
.FirstOrDefaultAsync(f => f.Id == entity.Id);
if (res == null) return null;
_mapper.Map(entity, res);
_mapper.ToMapList(entity.Details, res.Details);
_mapper.ToMapList(entity.Details.SelectMany(s => s.ErpDetails).ToList(), res.Details.SelectMany(s => s.ErpDetails).ToList());
await _context.SaveChangesAsync();
if (_transaction != null)
@@ -272,7 +273,7 @@ namespace WMS.Web.Repositories
public async Task<OutStock> GetByTaskId(int taskId)
{
var res = await _context.OutStock
.Include(s => s.Details)
.Include(s => s.Details).ThenInclude(s => s.ErpDetails)
.FirstOrDefaultAsync(f => taskId == f.TaskId);
return res.Clone();

View File

@@ -125,12 +125,12 @@ namespace WMS.Web.Repositories
List<int> list = entitys.Select(s => s.Id).ToList();
var res = await _context.OutStockTask
.Include(s => s.Details)
.Include(s => s.Details).ThenInclude(s => s.ErpDetails)
.Where(f => list.Contains(f.Id)).ToListAsync();
_mapper.ToMapList(entitys, res);
_mapper.ToMapList(entitys.SelectMany(s => s.Details).ToList(), res.SelectMany(s => s.Details).ToList());
_mapper.ToMapList(entitys.SelectMany(s => s.Details).SelectMany(s => s.ErpDetails).ToList(), res.SelectMany(s => s.Details).SelectMany(s => s.ErpDetails).ToList());
await _context.SaveChangesAsync();
if (_transaction != null)
_transaction.Commit();