wanggang 1 year ago
parent
commit
a5d8f648f7
  1. 25
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Bases/BA_SERVICE.cs
  2. 38
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Bases/CAN_SA_SERVICE.cs
  3. 16
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_BA_SERVICE.cs
  4. 11
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_CAN_SA_SERVICE.cs
  5. 6
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_CAN_SA_SERVICE.cs
  6. 6
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_CAN_SA_SERVICE.cs
  7. 39
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Bases/BaseDomainServices/BaseDomainService.cs
  8. 3
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG.cs
  9. 188
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG_EXT.cs
  10. 176
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Reports/SaSeEdiCompareDetailReport.cs
  11. 8
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Reports/SaSeEdiCompareDetailReportJisBBAC.cs
  12. 8
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Reports/SaSeEdiCompareDetailReportJisHBPO.cs
  13. 410
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Reports/SaSeEdiCompareDiff.cs
  14. 53
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Reports/SaSeEdiCompareSumReport.cs
  15. 2
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Reports/SeEidCompareReportJisBBAC.cs
  16. 4
      code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/JisBBACSaSeEdiCompareExportService.cs
  17. 4
      code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/JisHBPOSaSeEdiCompareExportService.cs
  18. 12
      code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/SaSeEdiCompareExportBaseService.cs
  19. 4
      code/src/Modules/SettleAccount/src/SettleAccount.Job/SettleAccountJobAutoMapperProfile.cs

25
code/src/Modules/SettleAccount/src/SettleAccount.Application/Bases/BA_SERVICE.cs

@ -525,19 +525,7 @@ namespace Win.Sfs.SettleAccount.Bases
/// <summary> /// <summary>
/// 校验规则 /// 校验规则
@ -547,6 +535,10 @@ namespace Win.Sfs.SettleAccount.Bases
/// <returns></returns> /// <returns></returns>
protected async Task<List<ERR_EXP_DTO>> CheckInvoiceGenerationRules<T>(List<T> dto1s, List<PriceList> p_pricelist, EnumBusinessType p_businessType) where T : SA_CAN_BASE protected async Task<List<ERR_EXP_DTO>> CheckInvoiceGenerationRules<T>(List<T> dto1s, List<PriceList> p_pricelist, EnumBusinessType p_businessType) where T : SA_CAN_BASE
{ {
var first= dto1s.FirstOrDefault();
var usepriceList = p_pricelist.Where(p => p.ClientCode == first.Site && p.IsCancel == false).ToList();
var errorlist= _baseservice.CheckPriceListContinuity(usepriceList);
var inner = from d in dto1s var inner = from d in dto1s
join p in p_pricelist on d.LU equals p.LU join p in p_pricelist on d.LU equals p.LU
where where
@ -593,6 +585,13 @@ namespace Win.Sfs.SettleAccount.Bases
keyname = "交付识别号"; keyname = "交付识别号";
break; break;
} }
foreach (var error in errorlist)
{
errorList.Add(new ERR_EXP_DTO() { ItemCode = error.LU, CustomCode = $"{name}", Message = $"LU:{error.LU},价格表开始日期:{error.BeginTime}价格表结束日期:{error.EndTime}在用价格时间段有交集或价格时间不连续!" });
}
foreach (var error in left) foreach (var error in left)
{ {
errorList.Add(new ERR_EXP_DTO() { ItemCode = error.LU, CustomCode = $"{name}", Message = $"LU:{error.LU}{keyname}:{error.PN},下线日期:{error.SettleDate}没有对应区间销售价格表!" }); errorList.Add(new ERR_EXP_DTO() { ItemCode = error.LU, CustomCode = $"{name}", Message = $"LU:{error.LU}{keyname}:{error.PN},下线日期:{error.SettleDate}没有对应区间销售价格表!" });

38
code/src/Modules/SettleAccount/src/SettleAccount.Application/Bases/CAN_SA_SERVICE.cs

@ -26,6 +26,7 @@ using Volo.Abp.TenantManagement.EntityFrameworkCore;
using Volo.Abp.Uow; using Volo.Abp.Uow;
using Win.Abp.Snowflakes; using Win.Abp.Snowflakes;
using Win.Sfs.BaseData.ImportExcelCommon; using Win.Sfs.BaseData.ImportExcelCommon;
using Win.Sfs.SettleAccount.Bases.DomainServices;
using Win.Sfs.SettleAccount.CommonManagers; using Win.Sfs.SettleAccount.CommonManagers;
using Win.Sfs.SettleAccount.Constant; using Win.Sfs.SettleAccount.Constant;
using Win.Sfs.SettleAccount.Entities.BQ; using Win.Sfs.SettleAccount.Entities.BQ;
@ -54,15 +55,15 @@ namespace Win.Sfs.SettleAccount.Bases
protected readonly INormalEfCoreRepository<TEntityDetail, Guid> _detailRepository; protected readonly INormalEfCoreRepository<TEntityDetail, Guid> _detailRepository;
private readonly IExcelImportAppService _excelImportService; private readonly IExcelImportAppService _excelImportService;
protected readonly INV_MNG _invmng; protected readonly INV_MNG _invmng;
private readonly BaseDomainService _baseservice;
protected CAN_SA_SERVICE( protected CAN_SA_SERVICE(
IExcelImportAppService excelImportService, IExcelImportAppService excelImportService,
ISnowflakeIdGenerator snowflakeIdGenerator, ISnowflakeIdGenerator snowflakeIdGenerator,
ICommonManager commonManager, ICommonManager commonManager,
INormalEfCoreRepository<TEntity, Guid> repository, INormalEfCoreRepository<TEntity, Guid> repository,
INormalEfCoreRepository<TEntityDetail, Guid> detailRepository, INormalEfCoreRepository<TEntityDetail, Guid> detailRepository,
INV_MNG invmng INV_MNG invmng,
BaseDomainService baseservice
) )
: base(excelImportService, snowflakeIdGenerator, commonManager) : base(excelImportService, snowflakeIdGenerator, commonManager)
{ {
@ -70,6 +71,7 @@ namespace Win.Sfs.SettleAccount.Bases
_excelImportService = excelImportService; _excelImportService = excelImportService;
_repository = repository; _repository = repository;
_detailRepository = detailRepository; _detailRepository = detailRepository;
_baseservice = baseservice;
} }
/// <summary> /// <summary>
@ -259,8 +261,12 @@ namespace Win.Sfs.SettleAccount.Bases
protected async Task<List<ERR_EXP_DTO>> CheckInvoiceGenerationRules<T>(List<T> dto1s,string p_site, List<PriceList> p_pricelist,EnumBusinessType p_businessType) where T : SA_CAN_BASE protected async Task<List<ERR_EXP_DTO>> CheckInvoiceGenerationRules<T>(List<T> dto1s,string p_site, List<PriceList> p_pricelist,EnumBusinessType p_businessType) where T : SA_CAN_BASE
{ {
//var maxDate = p_pricelist.Max(p => p.Date); //var maxDate = p_pricelist.Max(p => p.Date);
var first = dto1s.FirstOrDefault();
var usepriceList = p_pricelist.Where(p => p.ClientCode == first.Site && p.IsCancel == false).ToList();
var errorlist = _baseservice.CheckPriceListContinuity(usepriceList);
var prices = p_pricelist.Where(p =>p.ClientCode==p_site && p.IsCancel == false).ToList(); var prices = p_pricelist.Where(p =>p.ClientCode==p_site && p.IsCancel == false).ToList();
var inner = from d in dto1s var inner = from d in dto1s
@ -277,24 +283,6 @@ namespace Win.Sfs.SettleAccount.Bases
select d; select d;
//var maxDate = p_pricelist.Max(p => p.Date);
//var left = from a in dto1s
// join b in (from p in p_pricelist
// where p.Date == maxDate
// select p) on a.LU equals b.LU into joinedResult
// from jr in joinedResult.DefaultIfEmpty()
// where a.SettleDate >= jr.BeginTime && a.SettleDate <= jr.EndTime && jr.LU == null
// select a;
List<ERR_EXP_DTO> errorList = new List<ERR_EXP_DTO> (); List<ERR_EXP_DTO> errorList = new List<ERR_EXP_DTO> ();
string name = string.Empty; string name = string.Empty;
string keyname = string.Empty; string keyname = string.Empty;
@ -329,6 +317,10 @@ namespace Win.Sfs.SettleAccount.Bases
keyname = "交付识别号"; keyname = "交付识别号";
break; break;
} }
foreach (var error in errorlist)
{
errorList.Add(new ERR_EXP_DTO() { ItemCode = error.LU, CustomCode = $"{name}", Message = $"LU:{error.LU},价格表开始日期:{error.BeginTime}价格表结束日期:{error.EndTime}在用价格时间段有交集或价格时间不连续!" });
}
foreach (var error in left) foreach (var error in left)
{ {
errorList.Add(new ERR_EXP_DTO() { ItemCode = error.LU, CustomCode = $"{name}", Message = $"LU:{error.LU}{keyname}:{error.PN},下线日期:{error.SettleDate}没有对应区间销售价格表!" }); errorList.Add(new ERR_EXP_DTO() { ItemCode = error.LU, CustomCode = $"{name}", Message = $"LU:{error.LU}{keyname}:{error.PN},下线日期:{error.SettleDate}没有对应区间销售价格表!" });

16
code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_BA_SERVICE.cs

@ -4,6 +4,7 @@ using DocumentFormat.OpenXml.Spreadsheet;
using EFCore.BulkExtensions; using EFCore.BulkExtensions;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using NPOI.HPSF; using NPOI.HPSF;
using SettleAccount.Domain.BQ; using SettleAccount.Domain.BQ;
@ -451,6 +452,12 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
}; };
var dtos = q.ToList(); var dtos = q.ToList();
var testls = dtos.Where(p => string.IsNullOrEmpty(p.LU)).ToList();
if (dtos != null && dtos.Count > 0) if (dtos != null && dtos.Count > 0)
{ {
if (invbillnum.Substring(0, 3) == "INV")//一次开票重开 if (invbillnum.Substring(0, 3) == "INV")//一次开票重开
@ -465,15 +472,17 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
var entities = await ReissueSecInvoiceExtend(bbaclist, adjlist, dtos, version, invbillnum); var entities = await ReissueSecInvoiceExtend(bbaclist, adjlist, dtos, version, invbillnum);
var ls = ObjectMapper.Map<List<INVOICE_WAIT_DETAIL>, List<INVOICE_WAIT_DETAIL_DTO>>(entities); var ls = ObjectMapper.Map<List<INVOICE_WAIT_DETAIL>, List<INVOICE_WAIT_DETAIL_DTO>>(entities);
invBilllist.AddRange(ls); invBilllist.AddRange(ls);
} }
} }
else else
{ {
throw new UserFriendlyException($"不存发票号为:{invbillnum}发票"); throw new UserFriendlyException($"不存发票号为:{invbillnum}发票");
} }
} }
var als= invBilllist.Where(p => string.IsNullOrEmpty(p.PartCode)).ToList();
var invlist=invBilllist.OrderBy(p => p.PartCode).ToList(); var invlist=invBilllist.OrderBy(p => p.PartCode).ToList();
return new JsonResult(new { Code = 200, Data= invlist }); return new JsonResult(new { Code = 200, Data= invlist });
@ -585,7 +594,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
{ {
var entities = await ReissueFirstInvoiceExtend(bbaclist, adjlist, dtos, version, invbillnum); var entities = await ReissueFirstInvoiceExtend(bbaclist, adjlist, dtos, version, invbillnum);
var ls = ObjectMapper.Map<List<INVOICE_WAIT_DETAIL>, List<INVOICE_WAIT_DETAIL_DTO>>(entities); var ls = ObjectMapper.Map<List<INVOICE_WAIT_DETAIL>, List<INVOICE_WAIT_DETAIL_DTO>>(entities);
if (ls.Count > 0) if (ls.Count > 0)
{ {
var invlist = ls.Select(p => p.InvbillNum).Distinct(); var invlist = ls.Select(p => p.InvbillNum).Distinct();
@ -619,7 +627,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
var invBill = new INVOICE_REPEAT_DTO(); var invBill = new INVOICE_REPEAT_DTO();
var invls = ls.Where(p => p.InvbillNum == itm).ToList(); var invls = ls.Where(p => p.InvbillNum == itm).ToList();
var entitylist = entities.Where(p => p.InvbillNum == itm).ToList(); var entitylist = entities.Where(p => p.InvbillNum == itm).ToList();
var tax = inv.Tax;//税率 var tax = inv.Tax==0?0.13m:inv.Tax;//税率
var amt = entitylist.Sum(p => p.Amt);//税前 var amt = entitylist.Sum(p => p.Amt);//税前
var taxamt = amt + Math.Round(amt * tax, 2);//税后 var taxamt = amt + Math.Round(amt * tax, 2);//税后
var realamt = Math.Round(amt * tax, 2);//税额 var realamt = Math.Round(amt * tax, 2);//税额

11
code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_CAN_SA_SERVICE.cs

@ -31,6 +31,7 @@ using Win.Sfs.SettleAccount.CommonManagers;
using Volo.Abp; using Volo.Abp;
using Win.Sfs.SettleAccount.Entities.BQ.Temp; using Win.Sfs.SettleAccount.Entities.BQ.Temp;
using Volo.Abp.Uow; using Volo.Abp.Uow;
using Win.Sfs.SettleAccount.Bases.DomainServices;
namespace Win.Sfs.SettleAccount.Entities.BQ namespace Win.Sfs.SettleAccount.Entities.BQ
{ {
@ -65,10 +66,10 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
INV_MNG invmng, INV_MNG invmng,
INormalEfCoreRepository<BBAC_NOT_SA_DETAIL, Guid> notRepository, INormalEfCoreRepository<BBAC_NOT_SA_DETAIL, Guid> notRepository,
INormalEfCoreRepository<PriceList, Guid> priceRepository, INormalEfCoreRepository<PriceList, Guid> priceRepository,
BBAC_CAN_SA_MNG bbacMng BBAC_CAN_SA_MNG bbacMng,
BaseDomainService baseservice
) )
: base(excelImportService, snowflakeIdGenerator, commonManager, repository, detailRepository, invmng) : base(excelImportService, snowflakeIdGenerator, commonManager, repository, detailRepository, invmng,baseservice)
{ {
_notRepository = notRepository; _notRepository = notRepository;
_bbacMng = bbacMng; _bbacMng = bbacMng;
@ -86,6 +87,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
[UnitOfWork(false)] [UnitOfWork(false)]
public async Task<IActionResult> GenerateInvoice([FromBody] string invbillNum) public async Task<IActionResult> GenerateInvoice([FromBody] string invbillNum)
{ {
var main =await _bbacMng.GetMainAsync(invbillNum); var main =await _bbacMng.GetMainAsync(invbillNum);
if (main != null) if (main != null)
{ {
@ -95,8 +97,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
} }
var entitys = await _bbacMng.GetDetalListAsync(invbillNum);//可结算 var entitys = await _bbacMng.GetDetalListAsync(invbillNum);//可结算
var priceList = _priceRepository.Where(p => p.IsCancel == false).ToList(); var priceList = _priceRepository.Where(p => p.IsCancel == false).ToList();
//价格单
;//价格单
var errorList = await CheckInvoiceGenerationRules(entitys,main.Site,priceList, main.BusinessType);//校验生成规则 var errorList = await CheckInvoiceGenerationRules(entitys,main.Site,priceList, main.BusinessType);//校验生成规则
if (errorList.Count() > 0) if (errorList.Count() > 0)
{ {

6
code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_CAN_SA_SERVICE.cs

@ -19,6 +19,7 @@ using Volo.Abp.Uow;
using Win.Abp.Snowflakes; using Win.Abp.Snowflakes;
using Win.Sfs.BaseData.ImportExcelCommon; using Win.Sfs.BaseData.ImportExcelCommon;
using Win.Sfs.SettleAccount.Bases; using Win.Sfs.SettleAccount.Bases;
using Win.Sfs.SettleAccount.Bases.DomainServices;
using Win.Sfs.SettleAccount.CommonManagers; using Win.Sfs.SettleAccount.CommonManagers;
using Win.Sfs.SettleAccount.Constant; using Win.Sfs.SettleAccount.Constant;
using Win.Sfs.SettleAccount.Entities.BQ.Dtos; using Win.Sfs.SettleAccount.Entities.BQ.Dtos;
@ -61,8 +62,9 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
INV_MNG invmng, INV_MNG invmng,
INormalEfCoreRepository<HBPO_NOT_SA_DETAIL, Guid> notRepository, INormalEfCoreRepository<HBPO_NOT_SA_DETAIL, Guid> notRepository,
INormalEfCoreRepository<PriceList, Guid> priceRepository, INormalEfCoreRepository<PriceList, Guid> priceRepository,
HBPO_CAN_SA_MNG hbpoMng HBPO_CAN_SA_MNG hbpoMng,
) : base(excelImportService, snowflakeIdGenerator, commonManager, repository, detailRepository, invmng) BaseDomainService baseservice
) : base(excelImportService, snowflakeIdGenerator, commonManager, repository, detailRepository, invmng,baseservice)
{ {
_priceRepository = priceRepository; _priceRepository = priceRepository;

6
code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_CAN_SA_SERVICE.cs

@ -15,6 +15,7 @@ using Volo.Abp.Uow;
using Win.Abp.Snowflakes; using Win.Abp.Snowflakes;
using Win.Sfs.BaseData.ImportExcelCommon; using Win.Sfs.BaseData.ImportExcelCommon;
using Win.Sfs.SettleAccount.Bases; using Win.Sfs.SettleAccount.Bases;
using Win.Sfs.SettleAccount.Bases.DomainServices;
using Win.Sfs.SettleAccount.CommonManagers; using Win.Sfs.SettleAccount.CommonManagers;
using Win.Sfs.SettleAccount.Constant; using Win.Sfs.SettleAccount.Constant;
using Win.Sfs.SettleAccount.Entities.BQ.Dtos; using Win.Sfs.SettleAccount.Entities.BQ.Dtos;
@ -59,9 +60,10 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
INV_MNG invmng, INV_MNG invmng,
INormalEfCoreRepository<PriceList, Guid> priceRepository, INormalEfCoreRepository<PriceList, Guid> priceRepository,
INormalEfCoreRepository<PriceListBJ, Guid> pricebjRepository, INormalEfCoreRepository<PriceListBJ, Guid> pricebjRepository,
PUB_CAN_SA_MNG pubMng PUB_CAN_SA_MNG pubMng,
BaseDomainService baseservice
) : base(excelImportService, snowflakeIdGenerator, commonManager, repository, detailRepository, invmng) ) : base(excelImportService, snowflakeIdGenerator, commonManager, repository, detailRepository, invmng,baseservice)
{ {
_pubMng = pubMng; _pubMng = pubMng;
_priceRepository = priceRepository; _priceRepository = priceRepository;

39
code/src/Modules/SettleAccount/src/SettleAccount.Domain/Bases/BaseDomainServices/BaseDomainService.cs

@ -201,13 +201,43 @@ namespace Win.Sfs.SettleAccount.Bases.DomainServices
return errorList; return errorList;
} }
/// <summary>
/// 价格表时间是否连续
/// </summary>
/// <param name="priceList"></param>
/// <returns></returns>
public List<PriceList> CheckPriceListContinuity(List<PriceList> priceList)
{
List<PriceList> prices = new List<PriceList>();
if (priceList.Count <= 1)
return prices; // 只有一个或零个价格条目
var sortedList = priceList.OrderBy(item => item.BeginTime).ToList();
for (int i = 1; i < sortedList.Count; i++)
{
if (sortedList[i].LU== sortedList[i - 1].LU && sortedList[i].BeginTime != sortedList[i - 1].EndTime.AddDays(1))
{
prices.Add(sortedList[i]);
}
}
return prices; // 所有价格时间都连续
}
public static bool IsTimeOverlap(PriceList range1, PriceList range2)
{
return range1.BeginTime <= range2.EndTime && range1.EndTime >= range2.BeginTime;
}
public async Task<List<TEntity>> CheckPriceList<TEntity>(List<TEntity> p_list,string p_site,bool isBj=false) public async Task<List<TEntity>> CheckPriceList<TEntity>(List<TEntity> p_list,string p_site,bool isBj=false)
where TEntity : ISA_BASE,new() where TEntity : ISA_BASE,new()
{ {
List<TEntity> errorList = new List<TEntity>(); List<TEntity> errorList = new List<TEntity>();
if (isBj == true) if (isBj == true)
{ {
var pricebjlist = _pricebjRepository.ToList(); var pricebjlist = _pricebjRepository.Where(p => p.ClientCode == p_site && p.IsCancel == false).ToList();
var inner = from d in p_list var inner = from d in p_list
join p in pricebjlist on d.LU equals p.LU join p in pricebjlist on d.LU equals p.LU
@ -226,10 +256,11 @@ namespace Win.Sfs.SettleAccount.Bases.DomainServices
} }
else else
{ {
var pricebjlist = _priceRepository.Where(p=>p.ClientCode==p_site).ToList(); var pricelist = _priceRepository.Where(p=>p.ClientCode==p_site && p.IsCancel==false).ToList();
var inner = from d in p_list var inner = from d in p_list
join p in pricebjlist on d.LU equals p.LU join p in pricelist on d.LU equals p.LU
where where
d.SettleDate >= p.BeginTime && d.SettleDate <= p.EndTime d.SettleDate >= p.BeginTime && d.SettleDate <= p.EndTime
select d; select d;

3
code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG.cs

@ -1370,12 +1370,9 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
BeginDate = itm.Key.BeginDate, BeginDate = itm.Key.BeginDate,
EndDate = itm.Key.EndDate EndDate = itm.Key.EndDate
}).ToList(); }).ToList();
decimal amt = detailDtos.Sum(k => k.Amt);//金额 decimal amt = detailDtos.Sum(k => k.Amt);//金额
decimal txtAmt =detailDtos.Sum(k => k.Amt) + Math.Round(detailList.Sum(k => k.Amt) * 0.13m, 2);//税后金额 decimal txtAmt =detailDtos.Sum(k => k.Amt) + Math.Round(detailList.Sum(k => k.Amt) * 0.13m, 2);//税后金额
decimal realAmt = Math.Round(detailDtos.Sum(k => k.Amt) * 0.13m, 2);//税额 decimal realAmt = Math.Round(detailDtos.Sum(k => k.Amt) * 0.13m, 2);//税额
//decimal amt = detailDtos.Sum(k => k.Amt); //decimal amt = detailDtos.Sum(k => k.Amt);
//decimal txtAmt = Math.Round(detailDtos.Sum(k => k.Amt), 2); //decimal txtAmt = Math.Round(detailDtos.Sum(k => k.Amt), 2);
var mapList = new List<INVOICE_MAP_GROUP>(); var mapList = new List<INVOICE_MAP_GROUP>();

188
code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG_EXT.cs

@ -194,33 +194,33 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
{ {
detailList.AddRange(_entityDetailList); detailList.AddRange(_entityDetailList);
} }
decimal amt = detailList.Sum(k => k.Amt); decimal amt = detailList.Sum(k => k.Amt);//金额
decimal txtAmt = Math.Round(detailList.Sum(k => k.Amt), 2); decimal txtAmt = detailList.Sum(k => k.Amt) + Math.Round(detailList.Sum(k => k.Amt) * 0.13m, 2);//税后金额
decimal readAmt = Math.Round(detailList.Sum(k => k.Amt) * 0.13m, 2);//税额
var contractList = ls.Select(p => p.ContractDocID).Distinct(); var contractList = ls.Select(p => p.ContractDocID).Distinct();
var _groupList = dtos.Where(p => contractList.Contains(p.ContractDocID)).GroupBy(p => new { p.GroupNum }) var _groupList = dtos.Where(p => contractList.Contains(p.ContractDocID)).GroupBy(p => new { p.GroupNum })
.Select(p => new { GroupNum = p.Key.GroupNum, Amt = p.Sum(itm => itm.Amt) }).Distinct(); .Select(p => new { GroupNum = p.Key.GroupNum, Amt = p.Sum(itm => itm.Amt) }).Distinct();
//var _groupList = dtos.GroupBy(p => new { p.GroupNum }) //var _groupList = dtos.GroupBy(p => new { p.GroupNum })
// .Select(p => new { GroupNum = p.Key.GroupNum, Amt = p.Sum(itm => itm.Amt) }).Distinct(); // .Select(p => new { GroupNum = p.Key.GroupNum, Amt = p.Sum(itm => itm.Amt) }).Distinct();
List<INVOICE_MAP_GROUP> group1 = new List<INVOICE_MAP_GROUP>(); //List<INVOICE_MAP_GROUP> group1 = new List<INVOICE_MAP_GROUP>();
foreach (var en in _groupList) //foreach (var en in _groupList)
{ //{
group1.Add( // group1.Add(
new INVOICE_MAP_GROUP( // new INVOICE_MAP_GROUP(
guid: GuidGenerator.Create(), // guid: GuidGenerator.Create(),
version: p_version, // version: p_version,
invbillNum: key, // invbillNum: key,
invGroupNum: p_InvGroupNum, // invGroupNum: p_InvGroupNum,
settleGroupNum: en.GroupNum, // settleGroupNum: en.GroupNum,
amt: en.Amt, // amt: en.Amt,
extend1: string.Empty, // extend1: string.Empty,
extend2: string.Empty)); // extend2: string.Empty));
} //}
if (group1.Count > 0) //if (group1.Count > 0)
{ //{
groupList.AddRange(group1); // groupList.AddRange(group1);
} //}
var invbill = new INVOICE_GRP var invbill = new INVOICE_GRP
(guid: GuidGenerator.Create(), (guid: GuidGenerator.Create(),
@ -238,26 +238,11 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
preTaxDiff: 0, preTaxDiff: 0,
taxDiff: 0, taxDiff: 0,
clientCode: string.Empty, clientCode: string.Empty,
realAmt: 0 realAmt: readAmt
); );
invlist.Add(invbill); invlist.Add(invbill);
} }
//await _repository.DbContext.BulkInsertAsync(invlist);
//await _repository.DbContext.BulkInsertAsync(groupList);
//await _repository.DbContext.BulkInsertAsync(detailList);
//if(salist.Count>0)
//{
// await _repository.DbContext.BulkUpdateAsync(salist);
//}
//if (adjlist.Count > 0)
//{
// await _repository.DbContext.BulkUpdateAsync(adjlist);
//}
//await _repository.DbContext.BulkInsertAsync(notDetialList);
//_invls = invlist.Select(p => p.InvbillNum).ToList();
} }
return detailList; return detailList;
@ -342,13 +327,12 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
// adjdetails.Add(detail); // adjdetails.Add(detail);
// } // }
//} //}
var detailDtos = dtos.Where(p => ls.Contains(p.GroupNum)).GroupBy(p => new { p.InvGroupNum, p.PartCode,p.LU, p.Price, p.BeginDate, p.EndDate, p.ContractDocID })
var detailDtos = dtos.Where(p => ls.Contains(p.GroupNum)).GroupBy(p => new { p.InvGroupNum, p.PartCode, p.Price, p.BeginDate, p.EndDate, p.ContractDocID })
.Select(itm => new .Select(itm => new
{ {
PartCode = itm.Key.PartCode, PartCode = itm.Key.PartCode,
InvGroupNum = itm.Key.InvGroupNum, InvGroupNum = itm.Key.InvGroupNum,
LU = itm.Key.PartCode, LU = itm.Key.LU,
ContactDocID = itm.Key.ContractDocID, ContactDocID = itm.Key.ContractDocID,
Price = itm.Key.Price, Price = itm.Key.Price,
Amt = Math.Round(itm.Sum(k => k.Qty) * itm.Key.Price, 2), Amt = Math.Round(itm.Sum(k => k.Qty) * itm.Key.Price, 2),
@ -357,27 +341,28 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
EndDate = itm.Key.EndDate EndDate = itm.Key.EndDate
}) })
.ToList(); .ToList();
decimal amt = detailDtos.Sum(k => k.Amt); decimal amt = detailDtos.Sum(k => k.Amt);//金额
decimal txtAmt = Math.Round(detailDtos.Sum(k => k.Amt), 2); decimal txtAmt = detailDtos.Sum(k => k.Amt) + Math.Round(detailList.Sum(k => k.Amt) * 0.13m, 2);//税后金额
var mapList = new List<INVOICE_MAP_GROUP>(); decimal realAmt = Math.Round(detailDtos.Sum(k => k.Amt) * 0.13m, 2);//税额
foreach (var groupnum in ls) //var mapList = new List<INVOICE_MAP_GROUP>();
{ //foreach (var groupnum in ls)
mapList.Add(new INVOICE_MAP_GROUP( //{
guid: GuidGenerator.Create(), // mapList.Add(new INVOICE_MAP_GROUP(
version: p_version, // guid: GuidGenerator.Create(),
invbillNum: key, // version: p_version,
invGroupNum: p_InvGroupNum, // invbillNum: key,
settleGroupNum: groupnum, // invGroupNum: p_InvGroupNum,
amt: 0, // settleGroupNum: groupnum,
extend1: string.Empty, // amt: 0,
extend2: string.Empty // extend1: string.Empty,
) // extend2: string.Empty
); // )
} // );
if (mapList.Count > 0) //}
{ //if (mapList.Count > 0)
groupList.AddRange(mapList); //{
} // groupList.AddRange(mapList);
//}
List<INVOICE_WAIT_DETAIL> _entityDetailList = new List<INVOICE_WAIT_DETAIL>(); List<INVOICE_WAIT_DETAIL> _entityDetailList = new List<INVOICE_WAIT_DETAIL>();
foreach (var detail in detailDtos) foreach (var detail in detailDtos)
{ {
@ -444,7 +429,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
preTaxDiff: 0, preTaxDiff: 0,
taxDiff: 0, taxDiff: 0,
clientCode: string.Empty, clientCode: string.Empty,
realAmt: 0 realAmt: realAmt
); );
invlist.Add(invbill); invlist.Add(invbill);
} }
@ -635,8 +620,9 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
{ {
detailList.AddRange(_entityDetailList); detailList.AddRange(_entityDetailList);
} }
decimal amt = detailList.Sum(k => k.Amt); decimal amt = detailList.Sum(k => k.Amt);//金额
decimal txtAmt = Math.Round(detailList.Sum(k => k.Amt), 2); decimal txtAmt = detailList.Sum(k => k.Amt) + Math.Round(detailList.Sum(k => k.Amt) * 0.13m, 2);//税后金额
decimal realAmt = Math.Round(detailList.Sum(k => k.Amt) * 0.13m, 2);//税额
var invbill = new INVOICE_GRP var invbill = new INVOICE_GRP
(guid: GuidGenerator.Create(), (guid: GuidGenerator.Create(),
@ -654,24 +640,12 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
preTaxDiff:0, preTaxDiff:0,
taxDiff:0, taxDiff:0,
clientCode:string.Empty, clientCode:string.Empty,
realAmt:0 realAmt:realAmt
); );
invlist.Add(invbill); invlist.Add(invbill);
} }
//await _repository.DbContext.BulkInsertAsync(invlist);
////await _repository.DbContext.BulkInsertAsync(groupList);
//await _repository.DbContext.BulkInsertAsync(detailList);
//if (salist.Count > 0)
//{
// await _repository.DbContext.BulkUpdateAsync(salist);
//}
//if (adjlist.Count > 0)
//{
// await _repository.DbContext.BulkUpdateAsync(adjlist);
//}
//await _repository.DbContext.BulkInsertAsync(notDetialList);
//_invls = invlist.Select(p => p.InvbillNum).ToList();
} }
return detailList; return detailList;
} }
@ -776,12 +750,12 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
adjdetails.Add(detail); adjdetails.Add(detail);
} }
} }
var detailDtos = dtos.Where(p => ls.Contains(p.GroupNum)).GroupBy(p => new { p.InvGroupNum, p.PartCode, p.Price, p.BeginDate, p.EndDate, p.ContractDocID }) var detailDtos = dtos.Where(p => ls.Contains(p.GroupNum)).GroupBy(p => new { p.InvGroupNum, p.PartCode, p.Price, p.BeginDate, p.EndDate, p.ContractDocID,p.LU })
.Select(itm => new .Select(itm => new
{ {
PartCode=itm.Key.PartCode, PartCode=itm.Key.PartCode,
InvGroupNum = itm.Key.InvGroupNum, InvGroupNum = itm.Key.InvGroupNum,
LU = itm.Key.PartCode, LU = itm.Key.LU,
ContactDocID = itm.Key.ContractDocID, ContactDocID = itm.Key.ContractDocID,
Price = itm.Key.Price, Price = itm.Key.Price,
Amt = Math.Round(itm.Sum(k => k.Qty) * itm.Key.Price, 2), Amt = Math.Round(itm.Sum(k => k.Qty) * itm.Key.Price, 2),
@ -790,8 +764,9 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
EndDate = itm.Key.EndDate EndDate = itm.Key.EndDate
}) })
.ToList(); .ToList();
decimal amt = detailDtos.Sum(k => k.Amt); decimal amt = detailDtos.Sum(k => k.Amt);//金额
decimal txtAmt = Math.Round(detailDtos.Sum(k => k.Amt), 2); decimal txtAmt = detailDtos.Sum(k => k.Amt) + Math.Round(detailDtos.Sum(k => k.Amt) * 0.13m, 2);//税后金额
decimal realAmt = Math.Round(detailDtos.Sum(k => k.Amt) * 0.13m, 2);//税额
var mapList = new List<INVOICE_MAP_GROUP>(); var mapList = new List<INVOICE_MAP_GROUP>();
foreach (var groupnum in ls) foreach (var groupnum in ls)
{ {
@ -876,27 +851,11 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
preTaxDiff: 0, preTaxDiff: 0,
taxDiff: 0, taxDiff: 0,
clientCode: string.Empty, clientCode: string.Empty,
realAmt: 0 realAmt: realAmt
); );
invlist.Add(invbill); invlist.Add(invbill);
} }
//await _repository.DbContext.BulkInsertAsync(invlist);
//await _repository.DbContext.BulkInsertAsync(groupList);
//await _repository.DbContext.BulkInsertAsync(detailList);
//if(salist.Count>0)
//{
// await _repository.DbContext.BulkUpdateAsync(salist);
//}
//if (adjlist.Count > 0)
//{
// await _repository.DbContext.BulkUpdateAsync(adjlist);
//}
//if (notDetialList.Count > 0)
//{
// await _repository.DbContext.BulkInsertAsync(notDetialList);
//}
//_invls = invlist.Select(p => p.InvbillNum).ToList();
} }
return detailList; return detailList;
@ -1059,12 +1018,12 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
} }
} }
var detailDtos = dtos.Where(p => ls.Contains(p.GroupNum)).GroupBy(p => new { p.InvGroupNum, p.PartCode, p.Price, p.BeginDate, p.EndDate, p.ContractDocID }) var detailDtos = dtos.Where(p => ls.Contains(p.GroupNum)).GroupBy(p => new { p.InvGroupNum, p.PartCode, p.Price, p.BeginDate, p.EndDate, p.ContractDocID,p.LU })
.Select(itm => new .Select(itm => new
{ {
PartCode = itm.Key.PartCode, PartCode = itm.Key.PartCode,
InvGroupNum = itm.Key.InvGroupNum, InvGroupNum = itm.Key.InvGroupNum,
LU = itm.Key.PartCode, LU = itm.Key.LU,
ContactDocID = itm.Key.ContractDocID, ContactDocID = itm.Key.ContractDocID,
Price = itm.Key.Price, Price = itm.Key.Price,
Amt = Math.Round(itm.Sum(k => k.Qty) * itm.Key.Price, 2), Amt = Math.Round(itm.Sum(k => k.Qty) * itm.Key.Price, 2),
@ -1097,8 +1056,9 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
PartName = inv1.GetProperty("PartName", ""),//零件名称 PartName = inv1.GetProperty("PartName", ""),//零件名称
}; };
decimal amt = detailDtos.Sum(k => k.Amt); decimal amt = detailDtos.Sum(k => k.Amt);//金额
decimal txtAmt = Math.Round(detailDtos.Sum(k => k.Amt), 2); decimal txtAmt = detailDtos.Sum(k => k.Amt) + Math.Round(detailDtos.Sum(k => k.Amt) * 0.13m, 2);//税后金额
decimal readAmt = Math.Round(detailDtos.Sum(k => k.Amt) * 0.13m, 2);//税额
var mapList = new List<INVOICE_MAP_GROUP>(); var mapList = new List<INVOICE_MAP_GROUP>();
foreach (var groupnum in ls) foreach (var groupnum in ls)
{ {
@ -1191,27 +1151,11 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
preTaxDiff: 0, preTaxDiff: 0,
taxDiff: 0, taxDiff: 0,
clientCode: string.Empty, clientCode: string.Empty,
realAmt: 0 realAmt: readAmt
); );
invlist.Add(invbill); invlist.Add(invbill);
} }
//await _repository.DbContext.BulkInsertAsync(invlist);
//await _repository.DbContext.BulkInsertAsync(groupList);
//await _repository.DbContext.BulkInsertAsync(detailList);
//if (salist.Count > 0)
//{
// await _repository.DbContext.BulkUpdateAsync(salist);
//}
//if (adjlist.Count > 0)
//{
// await _repository.DbContext.BulkUpdateAsync(adjlist);
//}
//if (notDetialList.Count > 0)
//{
// await _repository.DbContext.BulkInsertAsync(notDetialList);
//}
//_invls = invlist.Select(p => p.InvbillNum).ToList();
} }
return detailList; return detailList;

176
code/src/Modules/SettleAccount/src/SettleAccount.Domain/Reports/SaSeEdiCompareDetailReport.cs

@ -0,0 +1,176 @@
using System;
using System.ComponentModel.DataAnnotations;
using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Excel;
using Win.Sfs.SettleAccount.Enums;
namespace Win.Sfs.SettleAccount.Reports;
/// <summary>
/// 结算、发运、Eid对比明细报告
/// </summary>
[ExcelExporter(MaxRowNumberOnASheet = 500_000)]
public class SaSeEdiCompareDetailReport
{
/// <summary>
/// 类别
/// </summary>
[Display(Name = "类别")]
[ExporterHeader(DisplayName = "类别")]
[ValueMapping("有结算有发运(有EDI数据)", 1)]
[ValueMapping("有结算有发运(无EDI数据)", 2)]
[ValueMapping("有结算无发运(有EDI数据)", 3)]
[ValueMapping("有结算无发运(无EDI数据)", 4)]
[ValueMapping("无结算有发运(有EDI数据)", 5)]
[ValueMapping("无结算有发运(无EDI数据)", 6)]
public EnumSaSeEdiCompareCategory Category { get; set; }
[Display(Name = "WMS多发")]
[ExporterHeader(DisplayName = "WMS多发")]
[ValueMapping("", 0)]
[ValueMapping("WMS多发", 1)]
public EnumWMSSend WMSSend
{
get
{
return (Category, SaSeQty < 0) switch
{
(EnumSaSeEdiCompareCategory.HaveSaHaveSeHaveEdi, true) => EnumWMSSend.WMSRepeat,
(EnumSaSeEdiCompareCategory.HaveSaHaveSeNotHaveEdi, true) => EnumWMSSend.WMSRepeat,
_ => EnumWMSSend.None
};
}
}
[Display(Name = "价格信息")]
[ExporterHeader(DisplayName = "价格信息", IsIgnore = true)]
[ValueMapping("有价格信息", true)]
[ValueMapping("无价格信息", false)]
public bool IsHavePrice => FixPrice != null && FixPrice != 0;
/// <summary>
/// 交货单号
/// </summary>
[Display(Name = "交货单号")]
[ExporterHeader(DisplayName = "交货单号")]
public string WmsBillNum { get; set; }
/// <summary>
/// 发货日期
/// </summary>
[Display(Name = "发货日期")]
[ExporterHeader(DisplayName = "发货日期")]
public DateTime? ShippingDate { get; set; }
/// <summary>
/// 生产码
/// </summary>
[Display(Name = "生产码")]
[ExporterHeader(DisplayName = "订单生产码")]
public string PN { get; set; }
/// <summary>
/// 日顺序号
/// </summary>
[Display(Name = "日顺序号")]
[ExporterHeader(DisplayName = "日顺序号")]
public string SeqNumber { get; set; }
/// <summary>
/// PJIS日顺序号
/// </summary>
[Display(Name = "PJIS日顺序号")]
[ExporterHeader(DisplayName = "PJIS日顺序号")]
public string PJISSeqNumber { get; set; }
/// <summary>
/// 客户物料号
/// </summary>
[Display(Name = "客户物料号")]
[ExporterHeader(DisplayName = "客户物料号")]
public string CustomerPartCode { get; set; }
/// <summary>
/// 物料描述
/// </summary>
[Display(Name = "物料描述")]
[ExporterHeader(DisplayName = "物料描述")]
public string PartCodeDesc { get; set; }
/// <summary>
/// 厂内物料号
/// </summary>
[Display(Name = "厂内物料号")]
[ExporterHeader(DisplayName = "厂内物料号")]
public string FactoryPartCode { get; set; }
/// <summary>
/// 替换厂内物料号
/// </summary>
[Display(Name = "替换厂内物料号")]
[ExporterHeader(DisplayName = "替换厂内物料号")]
public string ReplaceFactoryPartCode { get; set; }
/// <summary>
/// 客户下线时间
/// </summary>
[Display(Name = "客户下线时间")]
[ExporterHeader(DisplayName = "客户下线时间")]
public DateTime? CustomerOfflineTime { get; set; }
/// <summary>
/// 小总成号
/// </summary>
[Display(Name = "小总成号")]
[ExporterHeader(DisplayName = "小总成号")]
public string AssemblyCode { get; set; }
/// <summary>
/// 注塑码
/// </summary>
[Display(Name = "注塑码")]
[ExporterHeader(DisplayName = "注塑码")]
public string InjectionCode { get; set; }
/// <summary>
/// 结算数量
/// </summary>
[Display(Name = "结算数量")]
[ExporterHeader(DisplayName = "结算数量")]
public decimal SAQty { get; set; }
/// <summary>
/// 发货数量
/// </summary>
[Display(Name = "发货数量")]
[ExporterHeader(DisplayName = "WMS发货数量")]
public decimal SEQty { get; set; }
/// <summary>
/// Edi数量
/// </summary>
[Display(Name = "Edi数量")]
[ExporterHeader(DisplayName = "Edi数量")]
public decimal EdiQty { get; set; }
/// <summary>
/// 结算与WMS发货量差
/// </summary>
[ExporterHeader(DisplayName = "结算与WMS发货量差")]
public decimal SaSeQty => SAQty - SEQty;
/// <summary>
/// 结算与EDI量差
/// </summary>
[ExporterHeader(DisplayName = "结算与EDI量差")]
public decimal SaEdiQty => SAQty - EdiQty;
/// <summary>
/// WMS发货与EDI数量差
/// </summary>
[ExporterHeader(DisplayName = "WMS发货与EDI数量差")]
public decimal SeEdiQty => SEQty - EdiQty;
[Display(Name = "是否完全匹配")]
[ExporterHeader(DisplayName = "是否完全匹配")]
[ValueMapping("是", true)]
[ValueMapping("否", false)]
public bool MateType => SaSeQty == 0 && SaEdiQty == 0 && SeEdiQty == 0;
/// <summary>
/// 定价
/// </summary>
[Display(Name = "定价")]
[ExporterHeader(DisplayName = "定价", IsIgnore = true)]
public decimal? FixPrice { get; set; }
/// <summary>
/// ERP销售库位
/// </summary>
[Display(Name = "ERP销售库位")]
[ExporterHeader(DisplayName = "ERP销售库位")]
public string ToErpLocCode { get; set; }
/// <summary>
/// WMS发货库位
/// </summary>
[Display(Name = "WMS发货库位")]
[ExporterHeader(DisplayName = "WMS发货库位")]
public string ToLocCode { get; set; }
}

8
code/src/Modules/SettleAccount/src/SettleAccount.Domain/Reports/SaSeEdiCompareDetailReportJisBBAC.cs

@ -0,0 +1,8 @@
namespace Win.Sfs.SettleAccount.Reports;
/// <summary>
/// JisBBAC结算、发运、Eid明细对比报告
/// </summary>
public class SaSeEdiCompareDetailReportJisBBAC : SaSeEdiCompareDetailReport
{
}

8
code/src/Modules/SettleAccount/src/SettleAccount.Domain/Reports/SaSeEdiCompareDetailReportJisHBPO.cs

@ -0,0 +1,8 @@
namespace Win.Sfs.SettleAccount.Reports;
/// <summary>
/// JisHBPO结算、发运、Eid明细对比报告
/// </summary>
public class SaSeEdiCompareDetailReportJisHBPO : SaSeEdiCompareDetailReport
{
}

410
code/src/Modules/SettleAccount/src/SettleAccount.Domain/Reports/SaSeEdiCompareDiff.cs

@ -1,7 +1,5 @@
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Excel;
using Win.Sfs.SettleAccount.Enums; using Win.Sfs.SettleAccount.Enums;
namespace Win.Sfs.SettleAccount.Reports; namespace Win.Sfs.SettleAccount.Reports;
@ -121,18 +119,6 @@ public class SaSeEdiCompareDiff
/// </summary> /// </summary>
[Display(Name = "替换厂内物料号")] [Display(Name = "替换厂内物料号")]
public string ReplaceFactoryPartCode { get; set; } public string ReplaceFactoryPartCode { get; set; }
/// <summary>
/// 是否替换了厂内零件号
/// </summary>
public bool IsReplace { get; set; }
}
/// <summary>
/// 结算、发运、Eid对比明细
/// </summary>
[ExcelExporter(MaxRowNumberOnASheet = 500_000)]
public class SaSeEdiCompareDetailExport
{
} }
/// <summary> /// <summary>
@ -144,426 +130,30 @@ public interface ISaSeEdiCompareDetailExport
/// 类别 /// 类别
/// </summary> /// </summary>
[Display(Name = "类别")] [Display(Name = "类别")]
[ExporterHeader(DisplayName = "类别")]
[ValueMapping("有结算有发运(有EDI数据)", 1)]
[ValueMapping("有结算有发运(无EDI数据)", 2)]
[ValueMapping("有结算无发运(有EDI数据)", 3)]
[ValueMapping("有结算无发运(无EDI数据)", 4)]
[ValueMapping("无结算有发运(有EDI数据)", 5)]
[ValueMapping("无结算有发运(无EDI数据)", 6)]
public EnumSaSeEdiCompareCategory Category { get; set; } public EnumSaSeEdiCompareCategory Category { get; set; }
/// <summary> /// <summary>
/// 零件描述 /// 零件描述
/// </summary> /// </summary>
[Display(Name = "零件描述")] [Display(Name = "零件描述")]
[ExporterHeader(DisplayName = "物料描述")]
public string PartCodeDesc { get; set; } public string PartCodeDesc { get; set; }
/// <summary> /// <summary>
/// 替换厂内零件号 /// 替换厂内零件号
/// </summary> /// </summary>
[Display(Name = "替换厂内零件号")] [Display(Name = "替换厂内零件号")]
[ExporterHeader(DisplayName = "替换厂内零件号")]
public string ReplaceFactoryPartCode { get; set; }
/// <summary>
/// 结算数量
/// </summary>
[Display(Name = "结算数量")]
[ExporterHeader(DisplayName = "结算数量")]
public decimal SAQty { get; set; }
/// <summary>
/// 发货数量
/// </summary>
[Display(Name = "发货数量")]
[ExporterHeader(DisplayName = "WMS发货数量")]
public decimal SEQty { get; set; }
/// <summary>
/// Edi数量
/// </summary>
[Display(Name = "Edi数量")]
[ExporterHeader(DisplayName = "Edi数量")]
public decimal EdiQty { get; set; }
}
/// <summary>
/// JisBBAC结算、发运、Eid对比明细
/// </summary>
public class SaSeEdiCompareDetailExportJisBBAC : SaSeEdiCompareDetailExport, ISaSeEdiCompareDetailExport
{
/// <summary>
/// 类别
/// </summary>
[Display(Name = "类别")]
[ExporterHeader(DisplayName = "类别")]
[ValueMapping("有结算有发运(有EDI数据)", 1)]
[ValueMapping("有结算有发运(无EDI数据)", 2)]
[ValueMapping("有结算无发运(有EDI数据)", 3)]
[ValueMapping("有结算无发运(无EDI数据)", 4)]
[ValueMapping("无结算有发运(有EDI数据)", 5)]
[ValueMapping("无结算有发运(无EDI数据)", 6)]
public EnumSaSeEdiCompareCategory Category { get; set; }
[Display(Name = "WMS多发")]
[ExporterHeader(DisplayName = "WMS多发")]
[ValueMapping("", 0)]
[ValueMapping("WMS多发", 1)]
public EnumWMSSend WMSSend
{
get
{
return (Category, SaSeQty < 0) switch
{
(EnumSaSeEdiCompareCategory.HaveSaHaveSeHaveEdi, true) => EnumWMSSend.WMSRepeat,
(EnumSaSeEdiCompareCategory.HaveSaHaveSeNotHaveEdi, true) => EnumWMSSend.WMSRepeat,
_ => EnumWMSSend.None
};
}
}
[Display(Name = "价格信息")]
[ExporterHeader(DisplayName = "价格信息")]
[ValueMapping("有价格信息", true)]
[ValueMapping("无价格信息", false)]
public bool IsHavePrice => FixPrice != null && FixPrice != 0;
/// <summary>
/// 交货单号
/// </summary>
[Display(Name = "交货单号")]
[ExporterHeader(DisplayName = "交货单号")]
public string WmsBillNum { get; set; }
/// <summary>
/// 发货日期
/// </summary>
[Display(Name = "发货日期")]
[ExporterHeader(DisplayName = "发货日期")]
public DateTime? ShippingDate { get; set; }
/// <summary>
/// 生产码
/// </summary>
[Display(Name = "生产码")]
[ExporterHeader(DisplayName = "订单生产码")]
public string PN { get; set; }
/// <summary>
/// 日顺序号
/// </summary>
[Display(Name = "日顺序号")]
[ExporterHeader(DisplayName = "日顺序号")]
public string SeqNumber { get; set; }
/// <summary>
/// PJIS日顺序号
/// </summary>
[Display(Name = "PJIS日顺序号")]
[ExporterHeader(DisplayName = "PJIS日顺序号")]
public string PJISSeqNumber { get; set; }
/// <summary>
/// 客户物料号
/// </summary>
[Display(Name = "客户物料号")]
[ExporterHeader(DisplayName = "客户物料号")]
public string CustomerPartCode { get; set; }
/// <summary>
/// 物料描述
/// </summary>
[Display(Name = "物料描述")]
[ExporterHeader(DisplayName = "物料描述")]
public string PartCodeDesc { get; set; }
/// <summary>
/// 厂内物料号
/// </summary>
[Display(Name = "厂内物料号")]
[ExporterHeader(DisplayName = "厂内物料号")]
public string FactoryPartCode { get; set; }
/// <summary>
/// 替换厂内物料号
/// </summary>
[Display(Name = "替换厂内物料号")]
[ExporterHeader(DisplayName = "替换厂内物料号")]
public string ReplaceFactoryPartCode { get; set; }
/// <summary>
/// 客户下线时间
/// </summary>
[Display(Name = "客户下线时间")]
[ExporterHeader(DisplayName = "客户下线时间")]
public DateTime? CustomerOfflineTime { get; set; }
/// <summary>
/// 小总成号
/// </summary>
[Display(Name = "小总成号")]
[ExporterHeader(DisplayName = "小总成号")]
public string AssemblyCode { get; set; }
/// <summary>
/// 注塑码
/// </summary>
[Display(Name = "注塑码")]
[ExporterHeader(DisplayName = "注塑码")]
public string InjectionCode { get; set; }
/// <summary>
/// 结算数量
/// </summary>
[Display(Name = "结算数量")]
[ExporterHeader(DisplayName = "结算数量")]
public decimal SAQty { get; set; }
/// <summary>
/// 发货数量
/// </summary>
[Display(Name = "发货数量")]
[ExporterHeader(DisplayName = "WMS发货数量")]
public decimal SEQty { get; set; }
/// <summary>
/// Edi数量
/// </summary>
[Display(Name = "Edi数量")]
[ExporterHeader(DisplayName = "Edi数量")]
public decimal EdiQty { get; set; }
/// <summary>
/// 结算与WMS发货量差
/// </summary>
[ExporterHeader(DisplayName = "结算与WMS发货量差")]
public decimal SaSeQty => SAQty - SEQty;
/// <summary>
/// 结算与EDI量差
/// </summary>
[ExporterHeader(DisplayName = "结算与EDI量差")]
public decimal SaEdiQty => SAQty - EdiQty;
/// <summary>
/// WMS发货与EDI数量差
/// </summary>
[ExporterHeader(DisplayName = "WMS发货与EDI数量差")]
public decimal SeEdiQty => SEQty - EdiQty;
[Display(Name = "是否完全匹配")]
[ExporterHeader(DisplayName = "是否完全匹配")]
[ValueMapping("是", true)]
[ValueMapping("否", false)]
public bool MateType => SaSeQty == 0 && SaEdiQty == 0 && SeEdiQty == 0;
/// <summary>
/// 定价
/// </summary>
[Display(Name = "定价")]
[ExporterHeader(DisplayName = "定价")]
public virtual decimal? FixPrice { get; set; }
/// <summary>
/// ERP销售库位
/// </summary>
[Display(Name = "ERP销售库位")]
[ExporterHeader(DisplayName = "ERP销售库位")]
public string ToErpLocCode { get; set; }
/// <summary>
/// WMS发货库位
/// </summary>
[Display(Name = "WMS发货库位")]
[ExporterHeader(DisplayName = "WMS发货库位")]
public string ToLocCode { get; set; }
}
/// <summary>
/// JisHBPO结算、发运、Eid对比明细
/// </summary>
public class SaSeEdiCompareDetailExportJisHBPO : SaSeEdiCompareDetailExport, ISaSeEdiCompareDetailExport
{
/// <summary>
/// 类别
/// </summary>
[Display(Name = "类别")]
[ExporterHeader(DisplayName = "类别")]
[ValueMapping("有结算有发运(有EDI数据)", 1)]
[ValueMapping("有结算有发运(无EDI数据)", 2)]
[ValueMapping("有结算无发运(有EDI数据)", 3)]
[ValueMapping("有结算无发运(无EDI数据)", 4)]
[ValueMapping("无结算有发运(有EDI数据)", 5)]
[ValueMapping("无结算有发运(无EDI数据)", 6)]
public EnumSaSeEdiCompareCategory Category { get; set; }
[Display(Name = "WMS多发")]
[ExporterHeader(DisplayName = "WMS多发")]
[ValueMapping("", 0)]
[ValueMapping("WMS多发", 1)]
public EnumWMSSend WMSSend
{
get
{
return (Category, SaSeQty < 0) switch
{
(EnumSaSeEdiCompareCategory.HaveSaHaveSeHaveEdi, true) => EnumWMSSend.WMSRepeat,
(EnumSaSeEdiCompareCategory.HaveSaHaveSeNotHaveEdi, true) => EnumWMSSend.WMSRepeat,
_ => EnumWMSSend.None
};
}
}
[Display(Name = "价格信息")]
[ExporterHeader(DisplayName = "价格信息")]
[ValueMapping("有价格信息", true)]
[ValueMapping("无价格信息", false)]
public bool IsHavePrice => FixPrice != null && FixPrice != 0;
/// <summary>
/// 交货单号
/// </summary>
[Display(Name = "交货单号")]
[ExporterHeader(DisplayName = "交货单号")]
public string WmsBillNum { get; set; }
/// <summary>
/// 发货日期
/// </summary>
[Display(Name = "发货日期")]
[ExporterHeader(DisplayName = "发货日期")]
public DateTime? ShippingDate { get; set; }
/// <summary>
/// 生产码
/// </summary>
[Display(Name = "生产码")]
[ExporterHeader(DisplayName = "订单生产码")]
public string PN { get; set; }
/// <summary>
/// 日顺序号
/// </summary>
[Display(Name = "日顺序号")]
[ExporterHeader(DisplayName = "日顺序号")]
public string SeqNumber { get; set; }
/// <summary>
/// PJIS日顺序号
/// </summary>
[Display(Name = "PJIS日顺序号")]
[ExporterHeader(DisplayName = "PJIS日顺序号")]
public string PJISSeqNumber { get; set; }
/// <summary>
/// 客户物料号
/// </summary>
[Display(Name = "客户物料号")]
[ExporterHeader(DisplayName = "客户物料号")]
public string CustomerPartCode { get; set; }
/// <summary>
/// 物料描述
/// </summary>
[Display(Name = "物料描述")]
[ExporterHeader(DisplayName = "物料描述")]
public string PartCodeDesc { get; set; }
/// <summary>
/// 厂内物料号
/// </summary>
[Display(Name = "厂内物料号")]
[ExporterHeader(DisplayName = "厂内物料号")]
public string FactoryPartCode { get; set; }
/// <summary>
/// 替换厂内物料号
/// </summary>
[Display(Name = "替换厂内物料号")]
[ExporterHeader(DisplayName = "替换厂内物料号")]
public string ReplaceFactoryPartCode { get; set; } public string ReplaceFactoryPartCode { get; set; }
/// <summary> /// <summary>
/// 客户下线时间
/// </summary>
[Display(Name = "客户下线时间")]
[ExporterHeader(DisplayName = "客户下线时间")]
public DateTime? CustomerOfflineTime { get; set; }
/// <summary>
/// 小总成号
/// </summary>
[Display(Name = "小总成号")]
[ExporterHeader(DisplayName = "小总成号")]
public string AssemblyCode { get; set; }
/// <summary>
/// 注塑码
/// </summary>
[Display(Name = "注塑码")]
[ExporterHeader(DisplayName = "注塑码")]
public string InjectionCode { get; set; }
/// <summary>
/// 结算数量 /// 结算数量
/// </summary> /// </summary>
[Display(Name = "结算数量")] [Display(Name = "结算数量")]
[ExporterHeader(DisplayName = "结算数量")]
public decimal SAQty { get; set; } public decimal SAQty { get; set; }
/// <summary> /// <summary>
/// 发货数量 /// 发货数量
/// </summary> /// </summary>
[Display(Name = "发货数量")] [Display(Name = "发货数量")]
[ExporterHeader(DisplayName = "WMS发货数量")]
public decimal SEQty { get; set; } public decimal SEQty { get; set; }
/// <summary> /// <summary>
/// Edi数量 /// Edi数量
/// </summary> /// </summary>
[Display(Name = "Edi数量")] [Display(Name = "Edi数量")]
[ExporterHeader(DisplayName = "Edi数量")]
public decimal EdiQty { get; set; } public decimal EdiQty { get; set; }
/// <summary>
/// 结算与EDI量差
/// </summary>
[ExporterHeader(DisplayName = "结算与WMS发货量差")]
public decimal SaSeQty => SAQty - SEQty;
/// <summary>
/// 结算与EDI量差
/// </summary>
[ExporterHeader(DisplayName = "结算与EDI量差")]
public decimal SaEdiQty => SAQty - EdiQty;
/// <summary>
/// WMS发货与EDI数量差
/// </summary>
[ExporterHeader(DisplayName = "WMS发货与EDI数量差")]
public decimal SeEdiQty => SEQty - EdiQty;
[Display(Name = "是否完全匹配")]
[ExporterHeader(DisplayName = "是否完全匹配")]
[ValueMapping("是", true)]
[ValueMapping("否", false)]
public bool MateType => SaSeQty == 0 && SaEdiQty == 0 && SeEdiQty == 0;
/// <summary>
/// 定价
/// </summary>
[Display(Name = "定价")]
[ExporterHeader(DisplayName = "定价")]
public virtual decimal? FixPrice { get; set; }
/// <summary>
/// ERP销售库位
/// </summary>
[Display(Name = "ERP销售库位")]
[ExporterHeader(DisplayName = "ERP销售库位")]
public string ToErpLocCode { get; set; }
/// <summary>
/// WMS发货库位
/// </summary>
[Display(Name = "WMS发货库位")]
[ExporterHeader(DisplayName = "WMS发货库位")]
public string ToLocCode { get; set; }
}
/// <summary>
/// PUB结算与发运对比汇总
/// </summary>
[ExcelExporter(MaxRowNumberOnASheet = 500_000)]
public class SaSeEdiCompareSumExport
{
/// <summary>
/// 厂内物料号
/// </summary>
[Display(Name = "厂内物料号")]
[ExporterHeader(DisplayName = "LU")]
public string FactoryPartCode { get; set; }
/// <summary>
/// 物料描述
/// </summary>
[Display(Name = "物料描述")]
[ExporterHeader(DisplayName = "物料描述")]
public string PartCodeDesc { get; set; }
/// <summary>
/// 结算数量
/// </summary>
[Display(Name = "结算数量")]
[ExporterHeader(DisplayName = "结算数量")]
public decimal SAQty { get; set; }
/// <summary>
/// 发货数量
/// </summary>
[Display(Name = "发货数量")]
[ExporterHeader(DisplayName = "WMS发货数量")]
public decimal SEQty { get; set; }
/// <summary>
/// Edi数量
/// </summary>
[Display(Name = "Edi数量")]
[ExporterHeader(DisplayName = "Edi数量")]
public decimal EdiQty { get; set; }
/// <summary>
/// 结算与EDI量差
/// </summary>
[ExporterHeader(DisplayName = "结算与EDI量差")]
public decimal SaEdiQty => SAQty - EdiQty;
/// <summary>
/// WMS发货与EDI数量差
/// </summary>
[ExporterHeader(DisplayName = "WMS发货与EDI数量差")]
public decimal SeEdiQty => SEQty - EdiQty;
} }

53
code/src/Modules/SettleAccount/src/SettleAccount.Domain/Reports/SaSeEdiCompareSumReport.cs

@ -0,0 +1,53 @@
using System.ComponentModel.DataAnnotations;
using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Excel;
namespace Win.Sfs.SettleAccount.Reports;
/// <summary>
/// 结算、发运、Edi汇总对比报告
/// </summary>
[ExcelExporter(MaxRowNumberOnASheet = 500_000)]
public class SaSeEdiCompareSumReport
{
/// <summary>
/// 厂内物料号
/// </summary>
[Display(Name = "厂内物料号")]
[ExporterHeader(DisplayName = "LU")]
public string FactoryPartCode { get; set; }
/// <summary>
/// 物料描述
/// </summary>
[Display(Name = "物料描述")]
[ExporterHeader(DisplayName = "物料描述")]
public string PartCodeDesc { get; set; }
/// <summary>
/// 结算数量
/// </summary>
[Display(Name = "结算数量")]
[ExporterHeader(DisplayName = "结算数量")]
public decimal SAQty { get; set; }
/// <summary>
/// 发货数量
/// </summary>
[Display(Name = "发货数量")]
[ExporterHeader(DisplayName = "WMS发货数量")]
public decimal SEQty { get; set; }
/// <summary>
/// Edi数量
/// </summary>
[Display(Name = "Edi数量")]
[ExporterHeader(DisplayName = "Edi数量")]
public decimal EdiQty { get; set; }
/// <summary>
/// 结算与EDI量差
/// </summary>
[ExporterHeader(DisplayName = "结算与EDI量差")]
public decimal SaEdiQty => SAQty - EdiQty;
/// <summary>
/// WMS发货与EDI数量差
/// </summary>
[ExporterHeader(DisplayName = "WMS发货与EDI数量差")]
public decimal SeEdiQty => SEQty - EdiQty;
}

2
code/src/Modules/SettleAccount/src/SettleAccount.Domain/Reports/SeEidCompareReportJisBBAC.cs

@ -3,7 +3,7 @@ using Magicodes.ExporterAndImporter.Excel;
namespace Win.Sfs.SettleAccount.Reports; namespace Win.Sfs.SettleAccount.Reports;
/// <summary> /// <summary>
/// JisBBAC 发运、Edi与对比导出 /// JisBBAC 发运、Edi与对比报告
/// </summary> /// </summary>
[ExcelExporter(MaxRowNumberOnASheet = 500_000)] [ExcelExporter(MaxRowNumberOnASheet = 500_000)]
public class SeEidCompareReportJisBBAC : SeEidCompareReport public class SeEidCompareReportJisBBAC : SeEidCompareReport

4
code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/JisBBACSaSeEdiCompareExportService.cs

@ -106,8 +106,8 @@ namespace SettleAccount.Job.Services.Report
saSeEdiCompareDiffs = saSeEdiCompareDiffs.OrderBy(t => t.Category).ToList(); saSeEdiCompareDiffs = saSeEdiCompareDiffs.OrderBy(t => t.Category).ToList();
var excelExporter = new ExcelExporter(); var excelExporter = new ExcelExporter();
var items = _objectMapper.Map<List<SaSeEdiCompareDiff>, List<SaSeEdiCompareDetailExportJisBBAC>>(saSeEdiCompareDiffs); var items = _objectMapper.Map<List<SaSeEdiCompareDiff>, List<SaSeEdiCompareDetailReportJisBBAC>>(saSeEdiCompareDiffs);
excelExporter = BindExcelExporter<SaSeEdiCompareDetailExportJisBBAC>(items, businessTypeDisplayName); excelExporter = BindExcelExporter<SaSeEdiCompareDetailReportJisBBAC>(items, businessTypeDisplayName);
var result = excelExporter.ExportAppendDataAsByteArray(); var result = excelExporter.ExportAppendDataAsByteArray();
result.ShouldNotBeNull(); result.ShouldNotBeNull();

4
code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/JisHBPOSaSeEdiCompareExportService.cs

@ -105,8 +105,8 @@ namespace SettleAccount.Job.Services.Report
saSeEdiCompareDiffs = saSeEdiCompareDiffs.OrderBy(t => t.Category).ToList(); saSeEdiCompareDiffs = saSeEdiCompareDiffs.OrderBy(t => t.Category).ToList();
var excelExporter = new ExcelExporter(); var excelExporter = new ExcelExporter();
var items = _objectMapper.Map<List<SaSeEdiCompareDiff>, List<SaSeEdiCompareDetailExportJisHBPO>>(saSeEdiCompareDiffs); var items = _objectMapper.Map<List<SaSeEdiCompareDiff>, List<SaSeEdiCompareDetailReportJisHBPO>>(saSeEdiCompareDiffs);
excelExporter = BindExcelExporter<SaSeEdiCompareDetailExportJisHBPO>(items, businessTypeDisplayName); excelExporter = BindExcelExporter<SaSeEdiCompareDetailReportJisHBPO>(items, businessTypeDisplayName);
var result = excelExporter.ExportAppendDataAsByteArray(); var result = excelExporter.ExportAppendDataAsByteArray();
result.ShouldNotBeNull(); result.ShouldNotBeNull();

12
code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/SaSeEdiCompareExportBaseService.cs

@ -179,7 +179,7 @@ namespace SettleAccount.Job.Services.Report
/// <summary> /// <summary>
/// 创建导出文件结构 /// 创建导出文件结构
/// </summary> /// </summary>
public ExcelExporter BindExcelExporter<T>(List<T> saSeEdiCompareDetailExports, string businessTypeDisplayName) where T : SaSeEdiCompareDetailExport, ISaSeEdiCompareDetailExport, new() public ExcelExporter BindExcelExporter<T>(List<T> saSeEdiCompareDetailExports, string businessTypeDisplayName) where T : SaSeEdiCompareDetailReport, new()
{ {
//详情Sheet行数 //详情Sheet行数
var detailMaxRowNumberOnASheet = AppConst.DefaultRowNumberOnASheet; var detailMaxRowNumberOnASheet = AppConst.DefaultRowNumberOnASheet;
@ -191,14 +191,14 @@ namespace SettleAccount.Job.Services.Report
//汇总Sheet行数 //汇总Sheet行数
var sumMaxRowNumberOnASheet = AppConst.DefaultRowNumberOnASheet; var sumMaxRowNumberOnASheet = AppConst.DefaultRowNumberOnASheet;
var sumExportExporterAttribute = typeof(SaSeEdiCompareSumExport).GetAttribute<ExcelExporterAttribute>(inherit: true); var sumExportExporterAttribute = typeof(SaSeEdiCompareSumReport).GetAttribute<ExcelExporterAttribute>(inherit: true);
if (sumExportExporterAttribute != null) if (sumExportExporterAttribute != null)
{ {
sumMaxRowNumberOnASheet = sumExportExporterAttribute.MaxRowNumberOnASheet > 0 ? sumExportExporterAttribute.MaxRowNumberOnASheet : sumMaxRowNumberOnASheet; sumMaxRowNumberOnASheet = sumExportExporterAttribute.MaxRowNumberOnASheet > 0 ? sumExportExporterAttribute.MaxRowNumberOnASheet : sumMaxRowNumberOnASheet;
} }
//汇总 //汇总
var saSeEdiCompareSumExports = saSeEdiCompareDetailExports.GroupBy(p => p.ReplaceFactoryPartCode).Select(p => new SaSeEdiCompareSumExport() var saSeEdiCompareSumExports = saSeEdiCompareDetailExports.GroupBy(p => p.ReplaceFactoryPartCode).Select(p => new SaSeEdiCompareSumReport()
{ {
FactoryPartCode = p.Key, FactoryPartCode = p.Key,
PartCodeDesc = p.FirstOrDefault().PartCodeDesc, PartCodeDesc = p.FirstOrDefault().PartCodeDesc,
@ -210,7 +210,7 @@ namespace SettleAccount.Job.Services.Report
//有结算有发运 //有结算有发运
var haveSaHaveSeExports = saSeEdiCompareDetailExports.FindAll(t => new EnumSaSeEdiCompareCategory[] { EnumSaSeEdiCompareCategory.HaveSaHaveSeHaveEdi, EnumSaSeEdiCompareCategory.HaveSaHaveSeNotHaveEdi }.Contains(t.Category)); var haveSaHaveSeExports = saSeEdiCompareDetailExports.FindAll(t => new EnumSaSeEdiCompareCategory[] { EnumSaSeEdiCompareCategory.HaveSaHaveSeHaveEdi, EnumSaSeEdiCompareCategory.HaveSaHaveSeNotHaveEdi }.Contains(t.Category));
//有结算有发运汇总 //有结算有发运汇总
var haveSaHaveSeSumExports = haveSaHaveSeExports.GroupBy(p => p.ReplaceFactoryPartCode).Select(p => new SaSeEdiCompareSumExport() var haveSaHaveSeSumExports = haveSaHaveSeExports.GroupBy(p => p.ReplaceFactoryPartCode).Select(p => new SaSeEdiCompareSumReport()
{ {
FactoryPartCode = p.Key, FactoryPartCode = p.Key,
PartCodeDesc = p.FirstOrDefault().PartCodeDesc, PartCodeDesc = p.FirstOrDefault().PartCodeDesc,
@ -221,7 +221,7 @@ namespace SettleAccount.Job.Services.Report
//有结算无发运 //有结算无发运
var haveSaNotHaveSeExports = saSeEdiCompareDetailExports.FindAll(t => new EnumSaSeEdiCompareCategory[] { EnumSaSeEdiCompareCategory.HaveSaNotHaveSeHaveEdi, EnumSaSeEdiCompareCategory.HaveSaNotHaveSeNotHaveEdi }.Contains(t.Category)); var haveSaNotHaveSeExports = saSeEdiCompareDetailExports.FindAll(t => new EnumSaSeEdiCompareCategory[] { EnumSaSeEdiCompareCategory.HaveSaNotHaveSeHaveEdi, EnumSaSeEdiCompareCategory.HaveSaNotHaveSeNotHaveEdi }.Contains(t.Category));
//有结算无发运 //有结算无发运
var haveSaNotHaveSeSumExports = haveSaNotHaveSeExports.GroupBy(p => p.ReplaceFactoryPartCode).Select(p => new SaSeEdiCompareSumExport() var haveSaNotHaveSeSumExports = haveSaNotHaveSeExports.GroupBy(p => p.ReplaceFactoryPartCode).Select(p => new SaSeEdiCompareSumReport()
{ {
FactoryPartCode = p.Key, FactoryPartCode = p.Key,
PartCodeDesc = p.FirstOrDefault().PartCodeDesc, PartCodeDesc = p.FirstOrDefault().PartCodeDesc,
@ -232,7 +232,7 @@ namespace SettleAccount.Job.Services.Report
//无结算有发运 //无结算有发运
var notHaveSaHaveSeExports = saSeEdiCompareDetailExports.FindAll(t => new EnumSaSeEdiCompareCategory[] { EnumSaSeEdiCompareCategory.NotHaveSaHaveSeHaveEdi, EnumSaSeEdiCompareCategory.NotHaveSaHaveSeNotHaveEdi }.Contains(t.Category)); var notHaveSaHaveSeExports = saSeEdiCompareDetailExports.FindAll(t => new EnumSaSeEdiCompareCategory[] { EnumSaSeEdiCompareCategory.NotHaveSaHaveSeHaveEdi, EnumSaSeEdiCompareCategory.NotHaveSaHaveSeNotHaveEdi }.Contains(t.Category));
//无结算有发运 //无结算有发运
var notHaveSaHaveSeSumExports = notHaveSaHaveSeExports.GroupBy(p => p.ReplaceFactoryPartCode).Select(p => new SaSeEdiCompareSumExport() var notHaveSaHaveSeSumExports = notHaveSaHaveSeExports.GroupBy(p => p.ReplaceFactoryPartCode).Select(p => new SaSeEdiCompareSumReport()
{ {
FactoryPartCode = p.Key, FactoryPartCode = p.Key,
PartCodeDesc = p.FirstOrDefault().PartCodeDesc, PartCodeDesc = p.FirstOrDefault().PartCodeDesc,

4
code/src/Modules/SettleAccount/src/SettleAccount.Job/SettleAccountJobAutoMapperProfile.cs

@ -28,8 +28,8 @@ namespace SettleAccount.Job
/// </summary> /// </summary>
public void CreateMapSaSeEdiCompare() public void CreateMapSaSeEdiCompare()
{ {
CreateMap<SaSeEdiCompareDiff, SaSeEdiCompareDetailExportJisBBAC>(); CreateMap<SaSeEdiCompareDiff, SaSeEdiCompareDetailReportJisBBAC>();
CreateMap<SaSeEdiCompareDiff, SaSeEdiCompareDetailExportJisHBPO>(); CreateMap<SaSeEdiCompareDiff, SaSeEdiCompareDetailReportJisHBPO>();
CreateMap<SaSeEdiCompareDiff, BBAC_SEC_DETAIL>(); CreateMap<SaSeEdiCompareDiff, BBAC_SEC_DETAIL>();
CreateMap<SaSeEdiCompareDiff, HBPO_SEC_DETAIL>(); CreateMap<SaSeEdiCompareDiff, HBPO_SEC_DETAIL>();
} }

Loading…
Cancel
Save