Browse Source

更新版本

master
学 赵 1 year ago
parent
commit
06d3c4e6fa
  1. 69
      code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/INVOICE_GRP_DTO.cs
  2. 5
      code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/PUB_CAN_SA_DTO.cs
  3. 53
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_BA_SERVICE.cs
  4. 3
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/INVOICE_SERVICE.cs
  5. 3
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_BA_SERVICE.cs
  6. 2
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_CAN_SA_SERVICE.cs
  7. 1
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/INVOICE_WAIT_DETAIL.cs
  8. 58
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG.cs
  9. 2
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG_EXT.cs
  10. 6
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/PUB_NOT_SA_MNG.cs
  11. 7
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/PUB_CAN_SA.cs
  12. 6
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/PUB_NOT_SA_DETAIL.cs

69
code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/INVOICE_GRP_DTO.cs

@ -38,7 +38,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos
/// </summary>
[Display(Name = "税后金额")]
public decimal TaxAmt { get; set; }
[Display(Name = "金税发票金额")]
public decimal RealAmt { get; set; }
/// <summary>
@ -46,7 +45,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos
/// </summary>
[Display(Name = "发票分组号")]
public string InvGroupNum { get; set; }
/// <summary>
///业务类别
/// </summary>
@ -63,11 +61,74 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos
public decimal TaxDiff { get; set; }
[Display(Name = "客户代码")]
public string ClientCode { get; set; }
}
[Display(Name = "发票")]
public class INVOICE_REPEAT_DTO : EntityDto<Guid>
{
/// <summary>
///系统生成发票号
/// </summary>
[Display(Name = "系统发票号")]
public string InvbillNum { get; set; }
/// <summary>
///未税金额
/// </summary>
[Display(Name = "未税金额")]
public decimal Amt { get; set; }
/// <summary>
///未税金额
/// </summary>
[Display(Name = "未税金额")]
public decimal Tax { get; set; }
/// <summary>
///税后金额
/// </summary>
[Display(Name = "税后金额")]
public decimal TaxAmt { get; set; }
[Display(Name = "金税发票金额")]
public decimal RealAmt { get; set; }
/// <summary>
///发票分组号
/// </summary>
[Display(Name = "发票分组号")]
public string InvGroupNum { get; set; }
/// <summary>
///业务类别
/// </summary>
[Display(Name = "业务类别")]
public EnumBusinessType BusinessType { get; set; }
public List<INVOICE_WAIT_DETAIL_DTO> DETIAL { set; get; }
}
public class INVOICE_GRP_EXP_DTO
{
/// <summary>
@ -111,11 +172,11 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos
//public decimal TaxDiff { get; set; }
[Display(Name = "客户代码")]
public string ClientCode { get; set; }
}
}
public class INVOICE_GRP_IMP_DTO
{

5
code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/PUB_CAN_SA_DTO.cs

@ -110,6 +110,11 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos
[Display(Name = "客户零件号")]
public string PartCode { get; set; }
[Display(Name = "订单号")]
public string Extend4 { get; set; }
}

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

@ -324,10 +324,10 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public virtual async Task<List<INVOICE_WAIT_DETAIL_DTO>> ReissueInvoiceList(List<PUB_ADJ_DETAIL_DTO> p_list)
public virtual async Task<List<INVOICE_REPEAT_DTO>> ReissueInvoiceList(List<PUB_ADJ_DETAIL_DTO> p_list)
{
List<INVOICE_WAIT_DETAIL_DTO> ls = new List<INVOICE_WAIT_DETAIL_DTO>();
var invBill = new INVOICE_REPEAT_DTO();
var adjlist=ObjectMapper.Map<List<PUB_ADJ_DETAIL_DTO>, List<PUB_ADJ_DETAIL>>(p_list);
if (adjlist == null && adjlist.Count==0)
{
@ -426,16 +426,41 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
var dtos = q.ToList();
if (dtos != null && dtos.Count > 0)
{
if (invbillnum.Substring(0, 3) == "INV")//一次开票重开
{
var entities=await ReissueFirstInvoiceExtend(bbaclist, adjlist, dtos, version, invbillnum);
ls= ObjectMapper.Map<List<INVOICE_WAIT_DETAIL>, List<INVOICE_WAIT_DETAIL_DTO>>(entities);
}
else//二次开票
{
var entities = await ReissueSecInvoiceExtend(bbaclist, adjlist, dtos, version, invbillnum);
ls=ObjectMapper.Map<List<INVOICE_WAIT_DETAIL>, List<INVOICE_WAIT_DETAIL_DTO>>(entities);
}
if (invbillnum.Substring(0, 3) == "INV")//一次开票重开
{
var entities = await ReissueFirstInvoiceExtend(bbaclist, adjlist, dtos, version, invbillnum);
var ls = ObjectMapper.Map<List<INVOICE_WAIT_DETAIL>, List<INVOICE_WAIT_DETAIL_DTO>>(entities);
var tax = inv.Tax;
var amt = entities.Sum(p => p.Amt);
var taxamt =amt+ Math.Round(amt * tax, 2);
var billnum = string.Empty;
invBill.Amt = amt;
invBill.TaxAmt = taxamt;
invBill.Tax = tax;
invBill.BusinessType=inv.BusinessType;
invBill.DETIAL = ls;
}
else//二次开票
{
var entities = await ReissueSecInvoiceExtend(bbaclist, adjlist, dtos, version, invbillnum);
var ls = ObjectMapper.Map<List<INVOICE_WAIT_DETAIL>, List<INVOICE_WAIT_DETAIL_DTO>>(entities);
var tax = inv.Tax;
var amt = entities.Sum(p => p.Amt);
var taxamt = amt + Math.Round(amt * tax, 2);
var billnum = string.Empty;
invBill.Amt = amt;
invBill.TaxAmt = taxamt;
invBill.Tax = tax;
invBill.BusinessType = inv.BusinessType;
invBill.DETIAL = ls;
}
}
}
else
@ -447,7 +472,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
//{
// throw new UserFriendlyException($"不存发票号:{p_invbillnum}对应的结算分组号");
//}
return ls;
return invBill;
}

3
code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/INVOICE_SERVICE.cs

@ -263,9 +263,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
{
ExportImporter _exportImporter = new ExportImporter();
var result = await _exportImporter.UploadExcelImport<INVOICE_GRP_IMP_DTO>(files, _excelImportService);
var ls = ObjectMapper.Map<List<INVOICE_GRP_IMP_DTO>, List<INVOICE_GRP>>(result);
var namelist = ls.Select(p => p.InvbillNum).Distinct();
var invlist = _repository.Where(p => namelist.Contains(p.InvbillNum)).ToList();

3
code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_BA_SERVICE.cs

@ -109,7 +109,8 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
groupNum: itm.GroupNum,
invGroupNum: itm.InvGroupNum,
invbillnum: string.Empty,
partcode: itm.PartCode
partcode: itm.PartCode,
pobillnum:itm.bil
));

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

@ -116,7 +116,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
BeginDate = p.BeginTime,
EndDate = p.EndTime,
PartCode=d.PartCode,//客户零件号
PoNum=""
PoNum=
};

1
code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/INVOICE_WAIT_DETAIL.cs

@ -5,6 +5,7 @@ using Win.Sfs.SettleAccount;
namespace SettleAccount.Domain.BQ;
[Display(Name = "待开票明细")]
public class INVOICE_WAIT_DETAIL :FullAuditedAggregateRoot<Guid>
{

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

@ -985,12 +985,12 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
/// <param name="p_parentInvBillNum">原发票号</param>
public async Task<List<string>> SecInvoice<TDetail>(List<TDetail> p_list, List<PUB_ADJ_DETAIL> p_ajdlist, List<TEMP_CAN_SA_DETAIL> dtos, int p_version, string p_InvGroupNum, string p_parentInvBillNum, EnumBusinessType businessType)
where TDetail : SA_CAN_BASE
{
List<string> _invls = new List<string>();
var groups1 = dtos.GroupBy(p => new {p.PartCode, p.LU, p.Price, p.BeginDate, p.EndDate, p.ContractDocID }).Select(p => new TMEP_INV
var groups1 = dtos.GroupBy(p => new { p.PartCode, p.LU, p.Price, p.BeginDate, p.EndDate, p.ContractDocID }).Select(p => new TMEP_INV
{
PartCode=p.Key.PartCode,
PartCode = p.Key.PartCode,
LU = p.Key.LU,
Amt = p.Sum(itm => itm.Amt),
Qty = p.Sum(itm => itm.Qty),
@ -999,7 +999,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
BeginDate = p.Key.BeginDate,
EndDate = p.Key.EndDate
}).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
{
PartCode = p.Key.PartCode,
LU = p.Key.LU,
@ -1014,7 +1014,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
foreach (var group in groups)
{
int i = groups1.Count(p => p.LU == group.LU
&& p.PartCode==group.PartCode
&& p.PartCode == group.PartCode
&& p.BeginDate == group.BeginDate
&& p.EndDate == group.EndDate
&& p.ContractDocID == group.ContractDocID
@ -1053,8 +1053,8 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
invoiceMap.Add(invoiceBillNum, tempList);
var query = from itm in groups1 //更新分组
join itm1 in tempList
on new { itm.LU, itm.BeginDate, itm.EndDate, itm.ContractDocID ,itm.PartCode}
equals new { itm1.LU, itm1.BeginDate, itm1.EndDate, itm1.ContractDocID,itm1.PartCode } into temp
on new { itm.LU, itm.BeginDate, itm.EndDate, itm.ContractDocID, itm.PartCode }
equals new { itm1.LU, itm1.BeginDate, itm1.EndDate, itm1.ContractDocID, itm1.PartCode } into temp
from tm in temp
where tm == null
select new TMEP_INV
@ -1071,7 +1071,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
}
if (invoiceMap.Count > 0)
{
var groupList = new List<INVOICE_MAP_GROUP>();
var notDetialList = new List<INVOICE_NOT_SETTLE>();
var detailList = new List<INVOICE_WAIT_DETAIL>();
@ -1082,36 +1081,32 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
{
var key = group.Key;//发票票号
var ls = group.Value;//发票明细
//反向查找结算数据
var query = from itm in dtos
join itm1 in ls
on new { itm.LU,itm.PartCode, itm.BeginDate, itm.EndDate } equals new { itm1.LU,itm1.PartCode, itm1.BeginDate, itm1.EndDate }
join itm2 in p_list on new { itm.PartCode,itm.PN, itm.SettleDate } equals new { itm2.PartCode,itm2.PN, itm2.SettleDate }
select itm2;
foreach (var itm in query)
{
itm.InvbillNum = key;
salist.Add(itm);
}
//反向查找结算数据
var query = from itm in dtos
join itm1 in ls
on new { itm.LU, itm.PartCode, itm.BeginDate, itm.EndDate } equals new { itm1.LU, itm1.PartCode, itm1.BeginDate, itm1.EndDate }
join itm2 in p_list on new { itm.PartCode, itm.PN, itm.SettleDate } equals new { itm2.PartCode, itm2.PN, itm2.SettleDate }
select itm2;
foreach (var itm in query)
{
itm.InvbillNum = key;
salist.Add(itm);
}
if (!string.IsNullOrEmpty(p_parentInvBillNum))
{
//反向查找调整数据
var query1 = from itm in dtos
join itm1 in ls
on new { itm.LU,itm.PartCode ,itm.BeginDate, itm.EndDate } equals new { itm1.LU,itm1.PartCode, itm1.BeginDate, itm1.EndDate }
join itm2 in p_ajdlist on new { itm.PartCode, itm.PN, itm.SettleDate } equals new { itm2.PartCode, itm2.PN, itm2.SettleDate }
select itm2;
join itm1 in ls
on new { itm.LU, itm.PartCode, itm.BeginDate, itm.EndDate } equals new { itm1.LU, itm1.PartCode, itm1.BeginDate, itm1.EndDate }
join itm2 in p_ajdlist on new { itm.PartCode, itm.PN, itm.SettleDate } equals new { itm2.PartCode, itm2.PN, itm2.SettleDate }
select itm2;
foreach (var itm in query1)
{
itm.InvBillNum = key;
adjlist.Add(itm);
}
}
List < INVOICE_WAIT_DETAIL > _entityDetailList = new List<INVOICE_WAIT_DETAIL>();
List<INVOICE_WAIT_DETAIL> _entityDetailList = new List<INVOICE_WAIT_DETAIL>();
foreach (var detail in ls)
{
_entityDetailList.Add(
@ -1129,7 +1124,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
extend2: string.Empty,
beginDate: detail.BeginDate,
endDate: detail.EndDate,
partcode:detail.PartCode
partcode: detail.PartCode
));
}
if (_entityDetailList.Count > 0)
@ -1184,12 +1179,10 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
);
invlist.Add(invbill);
}
await _repository.DbContext.BulkInsertAsync(invlist);
await _repository.DbContext.BulkInsertAsync(groupList);
await _repository.DbContext.BulkInsertAsync(detailList);
if(salist.Count>0)
if (salist.Count > 0)
{
await _repository.DbContext.BulkUpdateAsync(salist);
}
@ -1197,7 +1190,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
{
await _repository.DbContext.BulkUpdateAsync(adjlist);
}
//await _repository.DbContext.BulkInsertAsync(notDetialList);
_invls = invlist.Select(p => p.InvbillNum).ToList();
}

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

@ -640,8 +640,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
decimal amt = detailList.Sum(k => k.Amt);
decimal txtAmt = Math.Round(detailList.Sum(k => k.Amt), 2);
var invbill = new INVOICE_GRP
(guid: GuidGenerator.Create(),
realnvBillNum: string.Empty,

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

@ -107,7 +107,8 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
groupNum: itm.GroupNum,
invGroupNum: billNumber,
invbillnum: string.Empty,
partcode: itm.PartCode
partcode: itm.PartCode,
pobillnum:string.Empty
);
_entityList.Add(_detailEntity);
@ -145,7 +146,8 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
groupNum: itm.GroupNum,
invGroupNum: billNumber,
invbillnum: string.Empty,
partcode: itm.PartCode
partcode: itm.PartCode,
pobillnum: string.Empty
);
_entityList.Add(_detailEntity);

7
code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/PUB_CAN_SA.cs

@ -112,6 +112,9 @@ public class PUB_CAN_SA_DETAIL : SA_CAN_BASE
[Display(Name = "业务类别")]
public EnumBusinessType BusinessType { get; set; }
[Display(Name = "订单号")]
public string PoBillNum { get; set; }
/// <summary>
/// 对应字段DeliveryNode
/// </summary>
@ -120,7 +123,8 @@ public class PUB_CAN_SA_DETAIL : SA_CAN_BASE
public PUB_CAN_SA_DETAIL(Guid guid, string keyCode, int version, string billNum, string settleBillNum, string lU, string pN, string site, decimal qty, decimal price, string invGroupNum, DateTime settleDate, EnumBusinessType businessType,string partcode,
string groupNum,
string invbillnum
string invbillnum,
string pobillnum
)
{
InvbillNum=invbillnum;
@ -139,6 +143,7 @@ public class PUB_CAN_SA_DETAIL : SA_CAN_BASE
BusinessType = businessType;
GroupNum = groupNum;
PartCode = partcode;
PoBillNum = pobillnum;
}
public PUB_CAN_SA_DETAIL()

6
code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/PUB_NOT_SA_DETAIL.cs

@ -69,8 +69,11 @@ public class PUB_NOT_SA_DETAIL : SA_NOT_BASE
public EnumBusinessType BusinessType { get; set; }
//[Display(Name = "结算分组")]
//public string GroupNum { get; set; } = null!;
[Display(Name ="订单号")]
public string PoBillNum { get; set; }
public PUB_NOT_SA_DETAIL(string keyCode, int version, string settleBillNum, string lU, string pN, string site, decimal qty, string extend1, string extend2, string extend3, decimal price, string invGroupNum, DateTime settleDate, EnumBusinessType businessType, string groupNum,string partcode)
public PUB_NOT_SA_DETAIL(string keyCode, int version, string settleBillNum, string lU, string pN, string site, decimal qty, string extend1, string extend2, string extend3, decimal price, string invGroupNum, DateTime settleDate, EnumBusinessType businessType, string groupNum,string partcode,string pobillnum)
{
KeyCode = keyCode;
Version = version;
@ -88,6 +91,7 @@ public class PUB_NOT_SA_DETAIL : SA_NOT_BASE
BusinessType = businessType;
GroupNum = groupNum;
PartCode = partcode;
PoBillNum = pobillnum;
}
public PUB_NOT_SA_DETAIL()

Loading…
Cancel
Save