出库单结构调整
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
@@ -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出库任务单
|
||||||
|
|||||||
@@ -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>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
48
src/WMS.Web.Domain/Entitys/OutStockErpDetails.cs
Normal file
48
src/WMS.Web.Domain/Entitys/OutStockErpDetails.cs
Normal 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; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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);
|
||||||
|
|||||||
@@ -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; }
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
Reference in New Issue
Block a user