From 41fcd25c3096f2ba733551f5bd43906f561bffcf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=AD=A6=20=E8=B5=B5?= <89237069@qq.com>
Date: Fri, 15 Sep 2023 09:53:03 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Entities/BQ/Dtos/INVOICE_GRP_DTO.cs | 6 +-
.../Bases/PD_SERVICE.cs | 4 +-
.../Entities/BQ/INVOICE_SERVICE.cs | 15 ++--
.../Entities/BQ/INVOICE_WAIT_DETAIL.cs | 2 +
.../Entities/BQ/Managers/INV_MNG.cs | 85 ++++++++-----------
5 files changed, 49 insertions(+), 63 deletions(-)
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/INVOICE_GRP_DTO.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/INVOICE_GRP_DTO.cs
index c2eb6c63..bdff57be 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/INVOICE_GRP_DTO.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/INVOICE_GRP_DTO.cs
@@ -288,7 +288,11 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos
public class INVOICE_WAIT_DETAIL_BJ_DTO
{
-
+ /////
+ /////期间
+ /////
+ //[Display(Name = "行号")]
+ //public int LineCode { get; set; }
///
///期间
///
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Bases/PD_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Bases/PD_SERVICE.cs
index 0dcbd774..0b9861c3 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Bases/PD_SERVICE.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Bases/PD_SERVICE.cs
@@ -164,12 +164,12 @@ namespace Win.Sfs.SettleAccount.Bases
{
return ApplicationConsts.SuccessStr;
}
- public virtual async Task GetMainAsync([FromBody] string billNum)
+ protected virtual async Task GetMainAsync([FromBody] string billNum)
{
return await _repository.Where(p=>p.InvGroupNum == billNum).FirstOrDefaultAsync();
}
- public virtual async Task> GetDetailAsync([FromBody] string billNum)
+ protected virtual async Task> GetDetailAsync([FromBody] string billNum)
{
return await _detailRepository.Where(p => p.InvGroupNum == billNum).ToListAsync();
}
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/INVOICE_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/INVOICE_SERVICE.cs
index 8929c24d..04f8f839 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/INVOICE_SERVICE.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/INVOICE_SERVICE.cs
@@ -316,17 +316,13 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
SettleGroupNum = p.FirstOrDefault().SettleGroupNum,
}
);
-
var all= entity.INVOICE_NOT_SETTLE.Select(p => p.SettleGroupNum).Distinct().ToList();//全部分组号
var part = mquery.ToList().Select(p => p.SettleGroupNum).Distinct().ToList();//发票对应分组号
var unsettled= all.Where(p => !part.Contains(p));//排除发票对应分组号,都为不可结
var unsettledList= entity.INVOICE_NOT_SETTLE.Where(p => unsettled.Contains(p.SettleGroupNum))
.GroupBy(p => new { p.LU, p.SettleGroupNum })
.Select(p => new UNSETTLED_DETAIL_DTO { LU = p.Key.LU, GroupNum = p.Key.SettleGroupNum, Qty = p.Sum(itm => itm.Qty.Value) });
-
-
entity.UNSETTLED_DETAIL = unsettledList.ToList().OrderBy(p=>p.GroupNum).ThenBy(p=>p.LU).ToList();
-
entity.INVOICE_MAP_GROUP = lscompare.ToList().OrderBy(p => p.SettleGroupNum).ToList();//包含不可结结算分组号
entity.ADJ_DETAIL = adjQuery.ToList().OrderBy(p=>p.GroupNum).ThenBy(p=>p.LU).ToList();
return entity;
@@ -336,7 +332,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
{
IExporter _csv = new CsvExporter();
IExporter _excel = new ExcelExporter();
-
var entities = await _repository.GetListByFilterAsync(input.Filters, input.Sorting, int.MaxValue, 0, true);
var dtoDetails = ObjectMapper.Map, List>(entities);
foreach (var itm in dtoDetails)
@@ -404,6 +399,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
}
else if (entities.FirstOrDefault().BusinessType == EnumBusinessType.BeiJian)
{
+
_excel.Append(bj, "发票明细");
}
else
@@ -413,8 +409,12 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
_excel.Append(m, "发票结算分组对应");//发票分组对应结算号
if (first.BusinessType == EnumBusinessType.ZhiGongJianBBAC || first.BusinessType == EnumBusinessType.ZhiGongJianHBPO)
{
- _excel.Append(unsettle, "未结零件分组汇总");
+ _excel.Append(unsettle, "未结零件结算汇总");
}
+
+
+
+
foreach (var itm in entities)
{
var mgroup =m.Where(p => p.InvbillNum == itm.InvbillNum).ToList();
@@ -428,7 +428,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
p.InvDate,
p.InvBillNum,
p.InvGroupNum,
-
}).Select(p => new INVOICE_NOT_SETTLE_DTO() {
LU =p.Key.LU,
RealInvBillNum =p.Key.RealInvBillNum,
@@ -505,8 +504,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
{
_excel.Append(ls, "结算分组零件" + itm.InvbillNum);
}
-
-
_excel.Append(adjp, "发票调整数据" + itm.InvbillNum).SeparateBySheet();
}
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/INVOICE_WAIT_DETAIL.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/INVOICE_WAIT_DETAIL.cs
index abe97ec5..761945b7 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/INVOICE_WAIT_DETAIL.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/INVOICE_WAIT_DETAIL.cs
@@ -51,6 +51,8 @@ public class INVOICE_WAIT_DETAIL :FullAuditedAggregateRoot
public DateTime BeginDate { get; set; }
[Display(Name = "价格结束日期")]
public DateTime EndDate { get; set; }
+ [Display(Name = "行号")]
+ public int LineCode { get; set; }
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG.cs
index 745a0300..9fcef7aa 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG.cs
@@ -773,7 +773,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
var involdList = invList.Where(p => oldinvs.Contains(p.ParentInvbillNum)).ToList();
var involdname = involdList.Select(p => p.InvbillNum);
var adjlist = _adjRepository.Where(p => involdname.Contains(p.InvBillNum));
-
if (adjlist != null && adjlist.Count() > 0)
{
foreach (var itm in adjlist)
@@ -799,7 +798,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
);
detail.RealPartCode = itm.RealPartCode;//厂内替换零件号
detail.ErpLoc = itm.ErpLoc;//ERP库位
-
entityList.Add(detail);
}
}
@@ -877,8 +875,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
extend2: string.Empty,
extend3: string.Empty,
extend4: itm.PartCode
-
-
+
);
entity.RELU =string.IsNullOrEmpty(itm.RealPartCode)?itm.PartCode:itm.RealPartCode;//厂内替换零件号
entity.Extend2 = itm.ErpLoc;//ERP库位
@@ -1353,8 +1350,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
var invlist = new List();
var salist = new List();
var adjlist = new List();
-
-
List lsby = new List();
var grouplist = p_list.Select(p => p.GroupNum).Distinct().ToList();//可结分组
lsby.AddRange(grouplist);
@@ -1578,7 +1573,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
}
-
+
@@ -1590,12 +1585,12 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
/// 版本号
/// 发票分组
/// 原发票号
- public async Task> MakeInvoice(List details,List p_adjlist, List dtos, int p_version, string p_InvGroupNum, string p_parentInvBillNum, EnumBusinessType businessType, bool p_first) where TDetail : SA_CAN_BASE
+ public async Task> MakeInvoice(List details, List p_adjlist, List dtos, int p_version, string p_InvGroupNum, string p_parentInvBillNum, EnumBusinessType businessType, bool p_first) where TDetail : SA_CAN_BASE
{
List _invls = new List();
- 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),
@@ -1604,9 +1599,9 @@ 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,
+ PartCode = p.Key.PartCode,
LU = p.Key.LU,
Amt = p.Sum(itm => itm.Amt),
Qty = p.Sum(itm => itm.Qty),
@@ -1619,7 +1614,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
@@ -1644,7 +1639,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
&& group.BeginDate == group1.BeginDate
&& group.EndDate == group1.EndDate
&& group1.ContractDocID == group.ContractDocID
- && group1.PartCode== group1.PartCode
+ && group1.PartCode == group1.PartCode
)
{
tempList.Add(group1);
@@ -1666,13 +1661,13 @@ 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
{
- PartCode= itm.PartCode,
+ PartCode = itm.PartCode,
LU = itm.LU,
Amt = itm.Amt,
Qty = itm.Qty,
@@ -1695,23 +1690,23 @@ 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 { LU=itm.LU,itm.PartCode, itm.BeginDate, itm.EndDate } equals new { itm1.LU,itm1.PartCode, itm1.BeginDate, itm1.EndDate }
- join itm2 in details on new { itm.LU,itm.PartCode,itm.PN, itm.SettleDate } equals new { itm2.LU,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 { LU = itm.LU, itm.PartCode, itm.BeginDate, itm.EndDate } equals new { itm1.LU, itm1.PartCode, itm1.BeginDate, itm1.EndDate }
+ join itm2 in details on new { itm.LU, itm.PartCode, itm.PN, itm.SettleDate } equals new { itm2.LU, 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 {LU= itm.LU,itm.PartCode, itm.BeginDate, itm.EndDate } equals new { itm1.LU,itm1.PartCode, itm1.BeginDate, itm1.EndDate }
+ on new { LU = itm.LU, itm.PartCode, itm.BeginDate, itm.EndDate } equals new { itm1.LU, itm1.PartCode, itm1.BeginDate, itm1.EndDate }
join itm2 in p_adjlist on new { itm.LU, itm.SettleDate } equals new { itm2.LU, itm2.SettleDate }
select itm2;
@@ -1721,7 +1716,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
adjlist.Add(itm);
}
}
-
List _entityDetailList = new List();
foreach (var detail in ls)
{
@@ -1740,8 +1734,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)
@@ -1766,10 +1759,10 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
invoiceBillState: InvoiceBillState.正常,
tax: 0.13m,
parent: p_parentInvBillNum,
- preTaxDiff:0,
- taxDiff:0,
- clientCode:string.Empty,
- realAmt:0
+ preTaxDiff: 0,
+ taxDiff: 0,
+ clientCode: string.Empty,
+ realAmt: 0
);
invbill.Site = dtos.FirstOrDefault().Site;
@@ -1954,10 +1947,8 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
{
detailList.AddRange(_entityDetailList);
}
-
string site = dtos.FirstOrDefault().Site;
string clientCode = string.Empty;
-
switch (site)
{
case "1040":
@@ -1993,32 +1984,30 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
invbill.CreationTime = DateTime.Now;
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)
+ if(adjlist.Count > 0)
{
await _repository.DbContext.BulkUpdateAsync(adjlist);
}
- if (p_notlist.Count > 0)
+ if(p_notlist.Count > 0)
{
-
var innotls = new List();
var notls = p_notlist.GroupBy(p => new { p.GroupNum, p.LU }).Select(p => new { GroupNum = p.Key.GroupNum, LU = p.Key.LU, Qty = p.Sum(itm => itm.Qty) });
foreach (var nitm in notls)
{
innotls.Add(new INVOICE_NOT_SETTLE(
guid: GuidGenerator.Create(),
+
version: p_version,
invGroupNum: p_InvGroupNum,
settleGroupNum: nitm.GroupNum,
- lU: string.Empty,
+ lU: nitm.LU,
lU1: nitm.LU,
extend1: string.Empty,
extend2: string.Empty,
@@ -2031,7 +2020,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
}
_invls = invlist.Select(p => p.InvbillNum).ToList();
}
-
return _invls;
}
@@ -2099,9 +2087,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
{
return false;
}
-
-
-
_repository.DbContext.BulkUpdate(new List { inv });
return true;
}
@@ -2198,7 +2183,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
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 })
.Select(itm => new
{
@@ -2213,7 +2197,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
EndDate = itm.Key.EndDate
})
.ToList();
-
var query = from inv1 in invdetails
join dto1 in dtos on
new { inv1.LU,inv1.PartCode, inv1.PN,inv1.Id } equals new { dto1.LU,dto1.PartCode, dto1.PN ,dto1.Id