Browse Source

更新版本

master
zhaoxinyu 10 months ago
parent
commit
af584365cb
  1. 5
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Bases/NOT_SA_SERVICE.cs
  2. 11
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_CAN_SA_SERVICE.cs
  3. 6
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_CAN_SA_SERVICE.cs
  4. 6
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_CAN_SA_SERVICE.cs
  5. 326
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/MakeCanSettlementService.cs
  6. 24
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG.cs
  7. 2
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/PUB_NOT_SA_MNG.cs
  8. 2
      code/src/Shared/Win.Sfs.Shared/Filter/FilterExtensions.cs

5
code/src/Modules/SettleAccount/src/SettleAccount.Application/Bases/NOT_SA_SERVICE.cs

@ -106,7 +106,7 @@ namespace Win.Sfs.SettleAccount.Bases
//[Route("export")] //[Route("export")]
public virtual async Task<string> ExportAsync(TRequestDetailInput input) public virtual async Task<string> ExportAsync(TRequestDetailInput input)
{ {
//#if DEBUG // #if DEBUG
// Stopwatch sw = Stopwatch.StartNew(); // Stopwatch sw = Stopwatch.StartNew();
// var entities = await _detailRepository.GetListByFilterAsync(input.Filters, input.Sorting, int.MaxValue, 0, true).ConfigureAwait(false); // var entities = await _detailRepository.GetListByFilterAsync(input.Filters, input.Sorting, int.MaxValue, 0, true).ConfigureAwait(false);
// var dtoDetails = ObjectMapper.Map<List<TEntityDetail>, List<TEntityDetailExportDto>>(entities); // var dtoDetails = ObjectMapper.Map<List<TEntityDetail>, List<TEntityDetailExportDto>>(entities);
@ -186,9 +186,6 @@ namespace Win.Sfs.SettleAccount.Bases
/// <returns></returns> /// <returns></returns>
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 first = dto1s.FirstOrDefault(); var first = dto1s.FirstOrDefault();
var usepriceList = p_pricelist.Where(p => p.ClientCode == first.Site && p.IsCancel == false).ToList(); var usepriceList = p_pricelist.Where(p => p.ClientCode == first.Site && p.IsCancel == false).ToList();
var errorlist = _baseservice.CheckPriceListContinuity(usepriceList); var errorlist = _baseservice.CheckPriceListContinuity(usepriceList);

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

@ -47,13 +47,9 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
> >
{ {
private readonly INormalEfCoreRepository<BBAC_NOT_SA_DETAIL, Guid> _notRepository; private readonly INormalEfCoreRepository<BBAC_NOT_SA_DETAIL, Guid> _notRepository;
private readonly INormalEfCoreRepository<PriceList, Guid> _priceRepository; private readonly INormalEfCoreRepository<PriceList, Guid> _priceRepository;
private readonly INormalEfCoreRepository<BBAC_SA, Guid> _saRepository; private readonly INormalEfCoreRepository<BBAC_SA, Guid> _saRepository;
private readonly TaskJobService _service; private readonly TaskJobService _service;
private readonly BBAC_CAN_SA_MNG _bbacMng; private readonly BBAC_CAN_SA_MNG _bbacMng;
public BBAC_CAN_SA_SERVICE(IExcelImportAppService excelImportService, public BBAC_CAN_SA_SERVICE(IExcelImportAppService excelImportService,
@ -99,8 +95,11 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
var entitys = await _bbacMng.GetDetalListAsync(invbillNum).ConfigureAwait(false);//可结算 var entitys = await _bbacMng.GetDetalListAsync(invbillNum).ConfigureAwait(false);//可结算
List<ERR_EXP_DTO> errors = new List<ERR_EXP_DTO>(); List<ERR_EXP_DTO> errors = new List<ERR_EXP_DTO>();
var settleBillList = entitys.Select(p => p.SettleBillNum).Distinct().ToList(); var settleBillList = entitys.Select(p => p.SettleBillNum).Distinct().ToList();
if (invbillNum.Substring(0, 1) != "N")
{
var checklist = _saRepository.Where(p => settleBillList.Contains(p.BillNum)).ToList(); var checklist = _saRepository.Where(p => settleBillList.Contains(p.BillNum)).ToList();
var jischeck = checklist.Where(p => p.State == "0" && p.BusinessType==EnumBusinessType.JisBBAC).ToList(); var jischeck = checklist.Where(p => p.State == "0" && p.BusinessType == EnumBusinessType.JisBBAC).ToList();
foreach (var itm in jischeck) foreach (var itm in jischeck)
{ {
errors.Add(new ERR_EXP_DTO() { Remark = $"版本:{itm.Version},结算单:{itm.BillNum}+此结算单JIS未比对,结算数据需要比对后才能开票!" }); errors.Add(new ERR_EXP_DTO() { Remark = $"版本:{itm.Version},结算单:{itm.BillNum}+此结算单JIS未比对,结算数据需要比对后才能开票!" });
@ -114,6 +113,8 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
{ {
return new JsonResult(new { Code = ApplicationConsts.ImportFailCode, Message = "错误提示文件已下载,请打开文件查看", fileName = await ExportErrorReportAsync(errors).ConfigureAwait(false) }); return new JsonResult(new { Code = ApplicationConsts.ImportFailCode, Message = "错误提示文件已下载,请打开文件查看", fileName = await ExportErrorReportAsync(errors).ConfigureAwait(false) });
} }
}
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).ConfigureAwait(false);//校验生成规则 var errorList = await CheckInvoiceGenerationRules(entitys, main.Site, priceList, main.BusinessType).ConfigureAwait(false);//校验生成规则

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

@ -47,8 +47,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
private readonly HBPO_CAN_SA_MNG _hbpoMng; private readonly HBPO_CAN_SA_MNG _hbpoMng;
private readonly TaskJobService _service; private readonly TaskJobService _service;
private readonly INormalEfCoreRepository<HBPO_SA, Guid> _saRepository; private readonly INormalEfCoreRepository<HBPO_SA, Guid> _saRepository;
public HBPO_CAN_SA_SERVICE(IExcelImportAppService excelImportService, public HBPO_CAN_SA_SERVICE(IExcelImportAppService excelImportService,
ISnowflakeIdGenerator snowflakeIdGenerator, ISnowflakeIdGenerator snowflakeIdGenerator,
ICommonManager commonManager, ICommonManager commonManager,
@ -93,6 +91,8 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
List<ERR_EXP_DTO> errors = new List<ERR_EXP_DTO>(); List<ERR_EXP_DTO> errors = new List<ERR_EXP_DTO>();
var settleBillList = entitys.Select(p => p.SettleBillNum).Distinct().ToList(); var settleBillList = entitys.Select(p => p.SettleBillNum).Distinct().ToList();
var checklist = _saRepository.Where(p => settleBillList.Contains(p.BillNum) && p.State == "0").ToList(); var checklist = _saRepository.Where(p => settleBillList.Contains(p.BillNum) && p.State == "0").ToList();
if (invbillnum.Substring(0, 1) != "N")
{
foreach (var itm in checklist) foreach (var itm in checklist)
{ {
errors.Add(new ERR_EXP_DTO() { Remark = $"版本:{itm.Version},结算单:{itm.BillNum}此结算单未比对,结算数据需要比对后才能开票!" }); errors.Add(new ERR_EXP_DTO() { Remark = $"版本:{itm.Version},结算单:{itm.BillNum}此结算单未比对,结算数据需要比对后才能开票!" });
@ -101,6 +101,8 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
{ {
return new JsonResult(new { Code = ApplicationConsts.ImportFailCode, Message = "错误提示文件已下载,请打开文件查看", fileName = await ExportErrorReportAsync(errors).ConfigureAwait(false) }); return new JsonResult(new { Code = ApplicationConsts.ImportFailCode, Message = "错误提示文件已下载,请打开文件查看", fileName = await ExportErrorReportAsync(errors).ConfigureAwait(false) });
} }
}
#endregion #endregion
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).ConfigureAwait(false);//校验生成规则 var errorList = await CheckInvoiceGenerationRules(entitys, main.Site, priceList, main.BusinessType).ConfigureAwait(false);//校验生成规则

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

@ -134,14 +134,18 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
List<ERR_EXP_DTO> errors = new List<ERR_EXP_DTO>(); List<ERR_EXP_DTO> errors = new List<ERR_EXP_DTO>();
var settleBillList = entitys.Select(p => p.SettleBillNum).Distinct().ToList(); var settleBillList = entitys.Select(p => p.SettleBillNum).Distinct().ToList();
var checklist = _saRepository.Where(p => settleBillList.Contains(p.BillNum) && p.State == "0").ToList(); var checklist = _saRepository.Where(p => settleBillList.Contains(p.BillNum) && p.State == "0").ToList();
if (billnum.Substring(0, 1) != "N")
{
foreach (var itm in checklist) foreach (var itm in checklist)
{ {
errors.Add(new ERR_EXP_DTO(){ Remark = $"版本:{itm.Version},结算单:{itm.BillNum}此结算单未比对,结算数据需要比对后才能开票!" }); errors.Add(new ERR_EXP_DTO() { Remark = $"版本:{itm.Version},结算单:{itm.BillNum}此结算单未比对,结算数据需要比对后才能开票!" });
} }
if (errors.Count > 0) if (errors.Count > 0)
{ {
return new JsonResult(new { Code = ApplicationConsts.ImportFailCode, Message = "错误提示文件已下载,请打开文件查看", fileName = await ExportErrorReportAsync(errors).ConfigureAwait(false) }); return new JsonResult(new { Code = ApplicationConsts.ImportFailCode, Message = "错误提示文件已下载,请打开文件查看", fileName = await ExportErrorReportAsync(errors).ConfigureAwait(false) });
} }
}
#endregion #endregion
var errorList = await CheckInvoiceGenerationRules(entitys, main.Site, priceList, main.BusinessType).ConfigureAwait(false);//校验生成规则 var errorList = await CheckInvoiceGenerationRules(entitys, main.Site, priceList, main.BusinessType).ConfigureAwait(false);//校验生成规则
if (errorList.Count > 0) if (errorList.Count > 0)

326
code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/MakeCanSettlementService.cs

@ -99,45 +99,96 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Syncs
var bbac_not_list= query.Select(p => p.b).ToList(); var bbac_not_list= query.Select(p => p.b).ToList();
if(bbac_can_list.Count>0) if(bbac_can_list.Count>0)
{ {
notlist.AddRange(bbac_not_list); var t1 = bbac_can_list.GroupBy(p => p.LU).Select(p => new { LU = p.Key, Amt = p.Sum(itm => itm.Qty * itm.Price) }).OrderByDescending(p => p.Amt).ToList();
var billNumber = OrderNumberGenerator.GenerateOrderNumber("N"); var part_group_big = t1.Where(p => p.Amt >= 10000000).ToList();
var entity = new BBAC_CAN_SA(); var part_group_small = t1.Where(p => p.Amt < 10000000).ToList();
entity.SetId(Guid.NewGuid());
entity.BillNum = billNumber; if (part_group_big.Count > 0)
entity.InvGroupNum = billNumber; {
entity.Version = int.Parse(DateTime.Now.ToString("yyyyMM")); foreach (var itm in part_group_big)
entity.State = SettleBillState.; {
entity.SettleBillNum = string.Empty; var ls = bbac_can_list.Where(p => p.LU == itm.LU).ToList();
entity.Site = "1040"; var billNum = OrderNumberGenerator.GenerateOrderNumber("N");
entity.BusinessType = EnumBusinessType.JisBBAC; var bbac_sa = new BBAC_CAN_SA();
billList.Add(entity); bbac_sa.SetId(Guid.NewGuid());
foreach (var itm in bbac_can_list) bbac_sa.BillNum = billNum;
bbac_sa.InvGroupNum = billNum;
bbac_sa.Version = int.Parse(DateTime.Now.ToString("yyyyMM"));
bbac_sa.State = SettleBillState.;
bbac_sa.SettleBillNum = string.Empty;
bbac_sa.Site = "1040";
bbac_sa.BusinessType = EnumBusinessType.JisBBAC;
billList.Add(bbac_sa);
foreach (var itm1 in ls)
{ {
var _detailEntity = new BBAC_CAN_SA_DETAIL( var _detailEntity = new BBAC_CAN_SA_DETAIL(
guid: GuidGenerator.Create(), guid: GuidGenerator.Create(),
keyCode: itm.KeyCode, keyCode: itm1.KeyCode,
version: itm.Version, version: itm1.Version,
billNum: billNumber, billNum: billNum,
settleBillNum: itm.SettleBillNum, settleBillNum: itm1.SettleBillNum,
lU: itm.LU, lU: itm1.LU,
pN: itm.PN, pN: itm1.PN,
site: itm.Site, site: itm1.Site,
qty: itm.Qty, qty: itm1.Qty,
price: itm.Price, price: itm1.Price,
category: itm.BusinessType, category: itm1.BusinessType,
isReturn: itm.IsReturn, isReturn: itm1.IsReturn,
settleDate: itm.SettleDate, settleDate: itm1.SettleDate,
groupNum: itm.GroupNum, groupNum: itm1.GroupNum,
invGroupNum: billNumber, invGroupNum: billNum,
contactid: itm.ContractDocID, contactid: itm1.ContractDocID,
invbillnum: string.Empty, invbillnum: string.Empty,
partcode: itm.PartCode partcode: itm1.PartCode
); );
_detailEntity.RealPartCode = itm.RealPartCode; _detailEntity.RealPartCode = itm1.RealPartCode;
billDetails.Add(_detailEntity); billDetails.Add(_detailEntity);
} }
} }
} }
if (part_group_small.Count > 0)
{
var partlist = part_group_small.Select(p => p.LU).ToList();
var ls = bbac_can_list.Where(p => partlist.Contains(p.LU)).ToList();
var billNum = OrderNumberGenerator.GenerateOrderNumber("N");
var bbac_sa = new BBAC_CAN_SA();
bbac_sa.SetId(Guid.NewGuid());
bbac_sa.BillNum = billNum;
bbac_sa.InvGroupNum = billNum;
bbac_sa.Version = int.Parse(DateTime.Now.ToString("yyyyMM"));
bbac_sa.State = SettleBillState.;
bbac_sa.SettleBillNum = string.Empty;
bbac_sa.Site = "1040";
bbac_sa.BusinessType = EnumBusinessType.JisBBAC;
billList.Add(bbac_sa);
foreach (var itm1 in ls)
{
var _detailEntity = new BBAC_CAN_SA_DETAIL(
guid: GuidGenerator.Create(),
keyCode: itm1.KeyCode,
version: itm1.Version,
billNum: billNum,
settleBillNum: itm1.SettleBillNum,
lU: itm1.LU,
pN: itm1.PN,
site: itm1.Site,
qty: itm1.Qty,
price: itm1.Price,
category: itm1.BusinessType,
isReturn: itm1.IsReturn,
settleDate: itm1.SettleDate,
groupNum: itm1.GroupNum,
invGroupNum: billNum,
contactid: itm1.ContractDocID,
invbillnum: string.Empty,
partcode: itm1.PartCode
);
_detailEntity.RealPartCode = itm1.RealPartCode;
billDetails.Add(_detailEntity);
}
}
}
}
if (jis2.Count > 0) if (jis2.Count > 0)
{ {
var pricelist = _dbcontext.Set<PriceList>().Where(p => p.ClientCode == "1046" && p.IsCancel == false).ToList(); var pricelist = _dbcontext.Set<PriceList>().Where(p => p.ClientCode == "1046" && p.IsCancel == false).ToList();
@ -175,45 +226,95 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Syncs
if (bbac_can_list.Count > 0) if (bbac_can_list.Count > 0)
{ {
notlist.AddRange(bbac_not_list); notlist.AddRange(bbac_not_list);
var billNumber = OrderNumberGenerator.GenerateOrderNumber("N"); var t1 = bbac_can_list.GroupBy(p => p.LU).Select(p => new { LU = p.Key, Amt = p.Sum(itm => itm.Qty * itm.Price) }).OrderByDescending(p => p.Amt).ToList();
var entity = new BBAC_CAN_SA(); var part_group_big = t1.Where(p => p.Amt >= 10000000).ToList();
entity.SetId(Guid.NewGuid()); var part_group_small = t1.Where(p => p.Amt <10000000).ToList();
entity.BillNum = billNumber; if (part_group_big.Count > 0)
entity.InvGroupNum = billNumber; {
entity.Version = int.Parse(DateTime.Now.ToString("yyyyMM")); foreach (var itm in part_group_big)
entity.State = SettleBillState.; {
entity.SettleBillNum = string.Empty; var ls= bbac_can_list.Where(p=>p.LU==itm.LU).ToList();
entity.Site = "1046"; var billNum = OrderNumberGenerator.GenerateOrderNumber("N");
entity.BusinessType = EnumBusinessType.JisBBAC; var bbac_sa = new BBAC_CAN_SA();
billList.Add(entity); bbac_sa.SetId(Guid.NewGuid());
bbac_sa.BillNum = billNum;
foreach (var itm in bbac_can_list) bbac_sa.InvGroupNum = billNum;
bbac_sa.Version = int.Parse(DateTime.Now.ToString("yyyyMM"));
bbac_sa.State = SettleBillState.;
bbac_sa.SettleBillNum = string.Empty;
bbac_sa.Site = "1046";
bbac_sa.BusinessType = EnumBusinessType.JisBBAC;
billList.Add(bbac_sa);
foreach (var itm1 in ls)
{ {
var _detailEntity = new BBAC_CAN_SA_DETAIL( var _detailEntity = new BBAC_CAN_SA_DETAIL(
guid: GuidGenerator.Create(), guid: GuidGenerator.Create(),
keyCode: itm.KeyCode, keyCode: itm1.KeyCode,
version: itm.Version, version: itm1.Version,
billNum: billNumber, billNum: billNum,
settleBillNum: itm.SettleBillNum, settleBillNum: itm1.SettleBillNum,
lU: itm.LU, lU: itm1.LU,
pN: itm.PN, pN: itm1.PN,
site: itm.Site, site: itm1.Site,
qty: itm.Qty, qty: itm1.Qty,
price: itm.Price, price: itm1.Price,
category: itm.BusinessType, category: itm1.BusinessType,
isReturn: itm.IsReturn, isReturn: itm1.IsReturn,
settleDate: itm.SettleDate, settleDate: itm1.SettleDate,
groupNum: itm.GroupNum, groupNum: itm1.GroupNum,
invGroupNum: billNumber, invGroupNum: billNum,
contactid: itm.ContractDocID, contactid: itm1.ContractDocID,
invbillnum: string.Empty, invbillnum: string.Empty,
partcode: itm.PartCode partcode: itm1.PartCode
); );
_detailEntity.RealPartCode = itm.RealPartCode; _detailEntity.RealPartCode = itm1.RealPartCode;
billDetails.Add(_detailEntity); billDetails.Add(_detailEntity);
} }
} }
} }
if (part_group_small.Count > 0)
{
var partlist = part_group_small.Select(p => p.LU).ToList();
var ls=bbac_can_list.Where(p => partlist.Contains(p.LU)).ToList();
var billNum = OrderNumberGenerator.GenerateOrderNumber("N");
var bbac_sa = new BBAC_CAN_SA();
bbac_sa.SetId(Guid.NewGuid());
bbac_sa.BillNum = billNum;
bbac_sa.InvGroupNum = billNum;
bbac_sa.Version = int.Parse(DateTime.Now.ToString("yyyyMM"));
bbac_sa.State = SettleBillState.;
bbac_sa.SettleBillNum = string.Empty;
bbac_sa.Site = "1046";
bbac_sa.BusinessType = EnumBusinessType.JisBBAC;
billList.Add(bbac_sa);
foreach (var itm1 in ls)
{
var _detailEntity = new BBAC_CAN_SA_DETAIL(
guid: GuidGenerator.Create(),
keyCode: itm1.KeyCode,
version: itm1.Version,
billNum: billNum,
settleBillNum: itm1.SettleBillNum,
lU: itm1.LU,
pN: itm1.PN,
site: itm1.Site,
qty: itm1.Qty,
price: itm1.Price,
category: itm1.BusinessType,
isReturn: itm1.IsReturn,
settleDate: itm1.SettleDate,
groupNum: itm1.GroupNum,
invGroupNum: billNum,
contactid: itm1.ContractDocID,
invbillnum: string.Empty,
partcode: itm1.PartCode
);
_detailEntity.RealPartCode = itm1.RealPartCode;
billDetails.Add(_detailEntity);
}
}
}
}
bool issucess = true; bool issucess = true;
using (var transaction = _dbcontext.Database.BeginTransaction()) using (var transaction = _dbcontext.Database.BeginTransaction())
{ {
@ -244,7 +345,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Syncs
{ {
if (billDetails.Count > 0) if (billDetails.Count > 0)
{ {
var result = from a in _dbcontext.Set<BBAC_SA_DETAIL>() var result = from a in _dbcontext.Set<BBAC_SA_DETAIL>()
join b in _dbcontext.Set<BBAC_CAN_SA_DETAIL>() on new { a.KeyCode, a.BusinessType } equals new { b.KeyCode, b.BusinessType } join b in _dbcontext.Set<BBAC_CAN_SA_DETAIL>() on new { a.KeyCode, a.BusinessType } equals new { b.KeyCode, b.BusinessType }
where a.Price == 0 where a.Price == 0
@ -326,43 +426,91 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Syncs
var hbpo_not_list = query.Select(p => p.b).ToList(); var hbpo_not_list = query.Select(p => p.b).ToList();
if (hbpo_can_list.Count > 0) if (hbpo_can_list.Count > 0)
{ {
var billNumber = OrderNumberGenerator.GenerateOrderNumber("N"); var t1 = hbpo_can_list.GroupBy(p => p.LU).Select(p => new { LU = p.Key, Amt = p.Sum(itm => itm.Qty * itm.Price) }).OrderByDescending(p => p.Amt).ToList();
var entity = new HBPO_CAN_SA(); var part_group_big = t1.Where(p => p.Amt >= 10000000).ToList();
entity.SetId(Guid.NewGuid()); var part_group_small = t1.Where(p => p.Amt < 10000000).ToList();
entity.BillNum = billNumber; if (part_group_big.Count > 0)
entity.InvGroupNum = billNumber; {
entity.Version = int.Parse(DateTime.Now.ToString("yyyyMM")); foreach (var itm in part_group_big)
entity.State = SettleBillState.; {
entity.SettleBillNum = string.Empty; var ls = hbpo_can_list.Where(p => p.LU == itm.LU).ToList();
entity.Site = "104T"; var billNum = OrderNumberGenerator.GenerateOrderNumber("N");
entity.BusinessType =(businesstype== "JisHBPO")?EnumBusinessType.JisHBPO:EnumBusinessType.MaiDanJianHBPO ; var bbac_sa = new HBPO_CAN_SA();
billList.Add(entity); bbac_sa.SetId(Guid.NewGuid());
notlist.AddRange(hbpo_not_list); bbac_sa.BillNum = billNum;
foreach (var itm in hbpo_can_list) bbac_sa.InvGroupNum = billNum;
bbac_sa.Version = int.Parse(DateTime.Now.ToString("yyyyMM"));
bbac_sa.State = SettleBillState.;
bbac_sa.SettleBillNum = string.Empty;
bbac_sa.Site = "1046";
bbac_sa.BusinessType = EnumBusinessType.JisBBAC;
billList.Add(bbac_sa);
foreach (var itm1 in ls)
{
var _detailEntity = new HBPO_CAN_SA_DETAIL(
guid: GuidGenerator.Create(),
keyCode: itm1.KeyCode,
version: itm1.Version,
billNum: billNum,
settleBillNum: itm1.SettleBillNum,
lU: itm1.LU,
pN: itm1.PN,
site: itm1.Site,
qty: itm1.Qty,
price: itm1.Price,
businessType: itm1.BusinessType,
settleDate: itm1.SettleDate,
groupNum: itm1.GroupNum,
invGroupNum: billNum,
invbillnum: string.Empty,
partcode: itm1.PartCode
);
_detailEntity.RealPartCode = itm1.RealPartCode;
billDetails.Add(_detailEntity);
}
}
}
if (part_group_small.Count > 0)
{
var partlist = part_group_small.Select(p => p.LU).ToList();
var ls = hbpo_can_list.Where(p => partlist.Contains(p.LU)).ToList();
var billNum = OrderNumberGenerator.GenerateOrderNumber("N");
var bbac_sa = new HBPO_CAN_SA();
bbac_sa.SetId(Guid.NewGuid());
bbac_sa.BillNum = billNum;
bbac_sa.InvGroupNum = billNum;
bbac_sa.Version = int.Parse(DateTime.Now.ToString("yyyyMM"));
bbac_sa.State = SettleBillState.;
bbac_sa.SettleBillNum = string.Empty;
bbac_sa.Site = "1046";
bbac_sa.BusinessType = EnumBusinessType.JisBBAC;
billList.Add(bbac_sa);
foreach (var itm1 in ls)
{ {
var _detailEntity = new HBPO_CAN_SA_DETAIL( var _detailEntity = new HBPO_CAN_SA_DETAIL(
guid: GuidGenerator.Create(), guid: GuidGenerator.Create(),
keyCode: itm.KeyCode, keyCode: itm1.KeyCode,
version: itm.Version, version: itm1.Version,
billNum: billNumber, billNum: billNum,
settleBillNum: itm.SettleBillNum, settleBillNum: itm1.SettleBillNum,
lU: itm.LU, lU: itm1.LU,
pN: itm.PN, pN: itm1.PN,
site: itm.Site, site: itm1.Site,
qty: itm.Qty, qty: itm1.Qty,
price: itm.Price, price: itm1.Price,
businessType: itm.BusinessType, businessType: itm1.BusinessType,
settleDate: itm.SettleDate, settleDate: itm1.SettleDate,
groupNum: itm.GroupNum, groupNum: itm1.GroupNum,
invGroupNum: billNumber, invGroupNum: billNum,
invbillnum: string.Empty, invbillnum: string.Empty,
partcode: itm.PartCode partcode: itm1.PartCode
); );
_detailEntity.RealPartCode = itm.RealPartCode; _detailEntity.RealPartCode = itm1.RealPartCode;
billDetails.Add(_detailEntity); billDetails.Add(_detailEntity);
} }
} }
} }
}
bool issucess = true; bool issucess = true;
using (var transaction = _dbcontext.Database.BeginTransaction()) using (var transaction = _dbcontext.Database.BeginTransaction())
{ {

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

@ -1028,6 +1028,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
Price = p.Key.Price, Price = p.Key.Price,
BeginDate = p.Key.BeginDate, BeginDate = p.Key.BeginDate,
EndDate = p.Key.EndDate EndDate = p.Key.EndDate
}).ToList();//汇总记录不出现重复值 }).ToList();//汇总记录不出现重复值
var groups = dtos.GroupBy(p => new { p.PartCode, p.LU, p.Price, p.BeginDate, p.EndDate, p.ContractDocID }).Select(p => new TMEP_INV var groups = dtos.GroupBy(p => new { p.PartCode, p.LU, p.Price, p.BeginDate, p.EndDate, p.ContractDocID }).Select(p => new TMEP_INV
{ {
@ -1039,7 +1040,30 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
ContractDocID = p.Key.ContractDocID, ContractDocID = p.Key.ContractDocID,
BeginDate = p.Key.BeginDate, BeginDate = p.Key.BeginDate,
EndDate = p.Key.EndDate EndDate = p.Key.EndDate
}).ToList();//汇总记录不出现重复值 }).ToList();//汇总记录不出现重复值
//var t1 = groups1.GroupBy(p => p.LU).Select(p => new { LU = p.Key, Amt = p.Sum(itm => itm.Qty * itm.Price) }).OrderByDescending(p => p.Amt).ToList();
//var group= t1.Where(p => p.Amt > 10000000).ToList();
////var t1 = groups1.GroupBy(p => p.LU).Select(p => new { LU = p.Key, Amt = p.Sum(itm => itm.Qty * itm.Price) }).OrderByDescending(p => p.Amt).ToList();
////var t2 = groups.GroupBy(p => p.LU).Select(p => new { LU = p.Key, Amt = p.Sum(itm => itm.Qty * itm.Price) }).OrderByDescending(p => p.Amt).ToList();
////foreach (var itm in t1)
////{
////}
////foreach (var itm in t2)
////{
////}
Dictionary<string, List<TMEP_INV>> invoiceMap = new Dictionary<string, List<TMEP_INV>>();//发票和发票明细关系 Dictionary<string, List<TMEP_INV>> invoiceMap = new Dictionary<string, List<TMEP_INV>>();//发票和发票明细关系
foreach (var group in groups) foreach (var group in groups)
{ {

2
code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/PUB_NOT_SA_MNG.cs

@ -349,7 +349,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
} }
await _repository.DbContext.BulkDeleteAsync(notList).ConfigureAwait(false); await _repository.DbContext.BulkDeleteAsync(notList).ConfigureAwait(false);
await _repository.DbContext.BulkInsertAsync(new List<PUB_CAN_SA>() { entity }).ConfigureAwait(false); await _repository.DbContext.BulkInsertAsync(new List<PUB_CAN_SA>() { entity }).ConfigureAwait(false);
await _repository.DbContext.BulkInsertAsync(pub_can_list).ConfigureAwait(false); await _repository.DbContext.BulkInsertAsync(entityList).ConfigureAwait(false);
} }
} }

2
code/src/Shared/Win.Sfs.Shared/Filter/FilterExtensions.cs

@ -22,6 +22,8 @@ namespace Win.Sfs.Shared.Filter
public static Expression<Func<T, bool>> ToLambda<T>(this FilterCondition filterCondition) public static Expression<Func<T, bool>> ToLambda<T>(this FilterCondition filterCondition)
{ {
var filterConditions = new List<FilterCondition> { filterCondition }; var filterConditions = new List<FilterCondition> { filterCondition };
return filterConditions.ToLambda<T>(); return filterConditions.ToLambda<T>();
} }

Loading…
Cancel
Save