出库单结构调整

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> </summary>
</member> </member>
<member name="P:WMS.Web.Core.Dto.OutStock.SaveOutStockDetailsRequest.Box_Dic"> <member name="P:WMS.Web.Core.Dto.OutStock.SaveOutStockDetailsRequest.BoxId">
<summary> <summary>
箱信息和对应的出库数量 箱Id
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Core.Dto.OutStock.SaveOutStockDetailsRequest.SerialNumbers"> <member name="P:WMS.Web.Core.Dto.OutStock.SaveOutStockDetailsRequest.SerialNumbers">
<summary> <summary>

View File

@@ -1016,16 +1016,6 @@
单据头Id 单据头Id
</summary> </summary>
</member> </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"> <member name="P:WMS.Web.Domain.Entitys.OutStockDetails.MaterialId">
<summary> <summary>
物料Id 物料Id
@@ -1051,6 +1041,46 @@
出库数量 出库数量
</summary> </summary>
</member> </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"> <member name="T:WMS.Web.Domain.Entitys.OutStockTask">
<summary> <summary>
erp出库任务单 erp出库任务单

View File

@@ -25,17 +25,6 @@ namespace WMS.Web.Domain.Entitys
/// </summary> /// </summary>
[Column("Fid")] [Column("Fid")]
public int Fid { get; set; } 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> /// <summary>
/// 物料Id /// 物料Id
///</summary> ///</summary>
@@ -61,5 +50,10 @@ namespace WMS.Web.Domain.Entitys
///</summary> ///</summary>
[Column("Qty")] [Column("Qty")]
public decimal Qty { get; set; } 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, OperateTime = DateTime.Now,
OperateType = OutStockTypeConvert(outStock.Type), OperateType = OutStockTypeConvert(outStock.Type),
OperateUser = userName, 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) if (outStock.Type == OutStockType.Sal)
{ {
var detail = outStock.Details.FirstOrDefault(f => f.MaterialId == entity.MaterialId); var detail = outStock.Details.FirstOrDefault(f => f.MaterialId == entity.MaterialId);
var res_c = await _erpService.BillQueryForCustomer(); var res_c = await _erpService.BillQueryForCustomer();
var customer = res_c.Data.FirstOrDefault(f => f.Id == outStock.ReceiptCustomerId); 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; op.Remark += "\r\n" + "客户:" + customer?.Name;
} }
sList.Add(op); sList.Add(op);

View File

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

View File

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

View File

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