diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/BBAC_SA_DTO.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/BBAC_SA_DTO.cs index d90ba01f..feee168f 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/BBAC_SA_DTO.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/BBAC_SA_DTO.cs @@ -131,7 +131,6 @@ public class BBAC_SA_DETAIL_IMPORT_DTO [Display(Name = "Posting Date")] [ImporterHeader(Name = "Posting Date")] public string SettleDate { set; get; } - /// /// 结算分组号 /// @@ -139,7 +138,6 @@ public class BBAC_SA_DETAIL_IMPORT_DTO [Required(ErrorMessage = "{0}不能为空")] [ImporterHeader(Name = "Reference")] public string GroupNum { get; set; } - /// /// 客户零件号 /// @@ -147,14 +145,12 @@ public class BBAC_SA_DETAIL_IMPORT_DTO [Required(ErrorMessage = "{0}不能为空")] [ImporterHeader(Name = "Material")] public string LU { get; set; } - /// /// 数量 /// [Display(Name = "结算数量")] [ImporterHeader(Name = "GR Quantity")] public decimal Qty { get; set; } - /// /// 生产号 /// diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_SA_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_SA_SERVICE.cs index ad1c3659..0c034354 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_SA_SERVICE.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_SA_SERVICE.cs @@ -134,17 +134,9 @@ public class BBAC_SA_SERVICE : SettleAccountApplicationBase var importBBACSaDetails = ObjectMapper.Map, List>(importDtos); + importBBACSaDetails = HandleSaDetails(importBBACSaDetails); importBBACSaDetails.ForEach(importBBACSaDetail => { - List lus = importBBACSaDetail.LU.Split(" ").ToList(); - importBBACSaDetail.LU = lus[0].Replace(" ", ""); - if (lus.Count > 1) - { - lus.RemoveAt(0); - var luAssemble = lus.Select(t => t.Replace(" ", "")); - importBBACSaDetail.LU += luAssemble.Aggregate(" ", (current, index) => current + index); - } - importBBACSaDetail.CustomerPartCodeNoSpace = importBBACSaDetail.LU.Replace(" ", ""); importBBACSaDetail.Version = Version; importBBACSaDetail.Site = Site; }); @@ -325,6 +317,39 @@ public class BBAC_SA_SERVICE : SettleAccountApplicationBase #endregion #region 私有方法 + /// + /// 处理结算数据 + /// + private List HandleSaDetails(List bbacSaDetails) + { + bbacSaDetails.ForEach(bbacSaDetail => + { + var lus = bbacSaDetail.LU.Split(" ").ToList(); + bbacSaDetail.LU = lus[0].Replace(" ", ""); + if (lus.Count > 1) + { + lus.RemoveAt(0); + var luAssemble = lus.Select(t => t.Replace(" ", "")); + bbacSaDetail.LU += luAssemble.Aggregate(" ", (current, index) => current + index); + } + }); + + return GroupPnLu(bbacSaDetails); + } + + /// + /// 结算数据分组Pn、Lu + /// + private List GroupPnLu(List bbacSaDetails) + { + return bbacSaDetails.GroupBy(t => new { t.PN, t.LU }).Select(t => + { + var bbacSaDetail = t.First(); + bbacSaDetail.Qty = t.Sum(t => t.Qty); + return bbacSaDetail; + }).ToList(); + } + /// /// 结算数据处理 /// @@ -365,17 +390,9 @@ public class BBAC_SA_SERVICE : SettleAccountApplicationBase bbacSaDetails.ForEach(bbacSaDetail => { bbacSaDetail.SetId(GuidGenerator.Create()); - List lus = bbacSaDetail.LU.Split(" ").ToList(); - bbacSaDetail.LU = lus[0].Replace(" ", ""); - if (lus.Count > 1) - { - lus.RemoveAt(0); - var luAssemble = lus.Select(t => t.Replace(" ", "")); - bbacSaDetail.LU += luAssemble.Aggregate(" ", (current, index) => current + index); - } - bbacSaDetail.BillNum = bbacSaBillNum; bbacSaDetail.KeyCode = bbacSaDetail.PN + bbacSaDetail.LU; + bbacSaDetail.CustomerPartCodeNoSpace = bbacSaDetail.LU.Replace(" ", ""); bbacSaDetail.BusinessType = bbacSaDetail.PN.Contains("R0") ? EnumBusinessType.MaiDanJianBBAC : _businessType; }); diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_SA_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_SA_SERVICE.cs index e7bde6c2..3c1bff65 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_SA_SERVICE.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_SA_SERVICE.cs @@ -219,7 +219,7 @@ public class HBPO_SA_SERVICE : SettleAccountApplicationBase var result = await _exportImporter.UploadExcelImport(files, _excelImportService).ConfigureAwait(false); var importHBOPSaDetails = ObjectMapper.Map, List>(result); - HandleSaDetails(importHBOPSaDetails); + importHBOPSaDetails = HandleSaDetails(importHBOPSaDetails); //Site包含CN1 亦庄 //Site包含CN5 顺义 @@ -237,11 +237,11 @@ public class HBPO_SA_SERVICE : SettleAccountApplicationBase if (importCN1HBOPSaDetails.Any()) { - await SaDataHandleAsync(importCN1HBOPSaDetails, "CN1").ConfigureAwait(false); + await InsertSaDataAsync(importCN1HBOPSaDetails, "CN1").ConfigureAwait(false); } if (importCN5HBOPSaDetails.Any()) { - await SaDataHandleAsync(importCN5HBOPSaDetails, "CN5").ConfigureAwait(false); + await InsertSaDataAsync(importCN5HBOPSaDetails, "CN5").ConfigureAwait(false); } return new JsonResult(new { Code = 200, Message = "导入成功" }); @@ -263,7 +263,7 @@ public class HBPO_SA_SERVICE : SettleAccountApplicationBase return new JsonResult(new { Code = 200, Message = "导入成功" }); } - HandleSaDetails(importMaiDanHBPOSaDetails); + importMaiDanHBPOSaDetails = HandleSaDetails(importMaiDanHBPOSaDetails); #region 数据校验 var checkList = await CheckAsync(importMaiDanHBPOSaDetails).ConfigureAwait(false); @@ -274,14 +274,50 @@ public class HBPO_SA_SERVICE : SettleAccountApplicationBase } #endregion - await SaDataHandleAsync(importMaiDanHBPOSaDetails, "").ConfigureAwait(false); + await InsertSaDataAsync(importMaiDanHBPOSaDetails, "").ConfigureAwait(false); return new JsonResult(new { Code = 200, Message = "导入成功" }); } /// - /// 结算数据处理 + /// 处理结算数据 /// - private async Task SaDataHandleAsync(List hbpoSaDetails, string site) + private List HandleSaDetails(List hbpoSaDetails) + { + hbpoSaDetails.ForEach(hbpoSaDetail => + { + hbpoSaDetail.SetId(GuidGenerator.Create()); + var lus = hbpoSaDetail.LU.Split(" ").ToList(); + hbpoSaDetail.LU = lus[0].Replace(" ", ""); + if (lus.Count > 1) + { + lus.RemoveAt(0); + var luAssemble = lus.Select(t => t.Replace(" ", "")); + hbpoSaDetail.LU += luAssemble.Aggregate(" ", (current, index) => current + index); + } + hbpoSaDetail.CustomerPartCodeNoSpace = hbpoSaDetail.LU.Replace(" ", ""); + hbpoSaDetail.Version = Version; + }); + + return GroupPnLu(hbpoSaDetails); + } + + /// + /// 结算数据分组Pn、Lu + /// + private List GroupPnLu(List hbpoSaDetails) + { + return hbpoSaDetails.GroupBy(t => new { t.PN, t.LU }).Select(t => + { + var hbpoSaDetail = t.First(); + hbpoSaDetail.Qty = t.Sum(t => t.Qty); + return hbpoSaDetail; + }).ToList(); + } + + /// + /// Insert结算数据 + /// + private async Task InsertSaDataAsync(List hbpoSaDetails, string site) { //结算单号 var hbpoSaBillNum = OrderNumberGenerator.GenerateOrderNumber("SA"); @@ -420,27 +456,6 @@ public class HBPO_SA_SERVICE : SettleAccountApplicationBase return (hbpoSas, hbpoSaDetails, hbpoCanSas, hbpoCanSaDetails, hbpoNotSaDetails); } - /// - /// 结算数据处理 - /// - private void HandleSaDetails(List hbpoSaDetails) - { - hbpoSaDetails.ForEach(hbpoSaDetail => - { - hbpoSaDetail.SetId(GuidGenerator.Create()); - var lus = hbpoSaDetail.LU.Split(" ").ToList(); - hbpoSaDetail.LU = lus[0].Replace(" ", ""); - if (lus.Count > 1) - { - lus.RemoveAt(0); - var luAssemble = lus.Select(t => t.Replace(" ", "")); - hbpoSaDetail.LU += luAssemble.Aggregate(" ", (current, index) => current + index); - } - hbpoSaDetail.CustomerPartCodeNoSpace = hbpoSaDetail.LU.Replace(" ", ""); - hbpoSaDetail.Version = Version; - }); - } - /// /// 数据校验 /// diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_SA_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_SA_SERVICE.cs index 9c09ef72..592dbb43 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_SA_SERVICE.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_SA_SERVICE.cs @@ -239,7 +239,7 @@ public class PUB_SA_SERVICE : SettleAccountApplicationBase return new JsonResult(new { Code = 200, Message = "导入成功" }); } - HandleSaDetailLU(importPubSaDetails); + importPubSaDetails = HandleSaDetails(importPubSaDetails); #region 数据校验 var checkList = await CheckAsync(importPubSaDetails).ConfigureAwait(false); @@ -250,7 +250,7 @@ public class PUB_SA_SERVICE : SettleAccountApplicationBase } #endregion - return await SaDataHandleAsync(importPubSaDetails, EnumBusinessType.ZhiGongJianBBAC).ConfigureAwait(false); + return await InsertSaDataAsync(importPubSaDetails, EnumBusinessType.ZhiGongJianBBAC).ConfigureAwait(false); } /// @@ -276,7 +276,7 @@ public class PUB_SA_SERVICE : SettleAccountApplicationBase return new JsonResult(new { Code = 200, Message = "导入成功" }); } - HandleSaDetailLU(importPubSaDetails); + importPubSaDetails = HandleSaDetails(importPubSaDetails); #region 数据校验 var checkList = await CheckAsync(importPubSaDetails); @@ -287,7 +287,7 @@ public class PUB_SA_SERVICE : SettleAccountApplicationBase } #endregion - return await SaDataHandleAsync(importPubSaDetails, EnumBusinessType.ZhiGongJianHBPO).ConfigureAwait(false); + return await InsertSaDataAsync(importPubSaDetails, EnumBusinessType.ZhiGongJianHBPO).ConfigureAwait(false); } /// @@ -306,7 +306,7 @@ public class PUB_SA_SERVICE : SettleAccountApplicationBase return new JsonResult(new { Code = 200, Message = "导入成功" }); } - HandleSaDetailLU(importPubSaDetails); + importPubSaDetails = HandleSaDetails(importPubSaDetails); #region 数据校验 var checkList = await CheckAsync(importPubSaDetails).ConfigureAwait(false); @@ -317,7 +317,7 @@ public class PUB_SA_SERVICE : SettleAccountApplicationBase } #endregion - return await SaDataHandleAsync(importPubSaDetails, EnumBusinessType.BeiJian).ConfigureAwait(false); + return await InsertSaDataAsync(importPubSaDetails, EnumBusinessType.BeiJian).ConfigureAwait(false); } /// @@ -337,7 +337,7 @@ public class PUB_SA_SERVICE : SettleAccountApplicationBase return new JsonResult(new { Code = 200, Message = "导入成功" }); } - HandleSaDetailLU(importPubSaDetails); + importPubSaDetails = HandleSaDetails(importPubSaDetails); #region 数据校验 var checkList = await CheckAsync(importPubSaDetails).ConfigureAwait(false); @@ -348,7 +348,7 @@ public class PUB_SA_SERVICE : SettleAccountApplicationBase } #endregion - return await SaDataHandleAsync(importPubSaDetails, EnumBusinessType.YinDuJian).ConfigureAwait(false); + return await InsertSaDataAsync(importPubSaDetails, EnumBusinessType.YinDuJian).ConfigureAwait(false); } /// @@ -392,10 +392,9 @@ public class PUB_SA_SERVICE : SettleAccountApplicationBase } /// - /// 处理结算数据LU + /// 处理结算数据 /// - /// - private void HandleSaDetailLU(List pubSaDetails) + private List HandleSaDetails(List pubSaDetails) { pubSaDetails.ForEach(pubSaDetail => { @@ -408,12 +407,27 @@ public class PUB_SA_SERVICE : SettleAccountApplicationBase pubSaDetail.LU += luAssemble.Aggregate(" ", (current, index) => current + index); } }); + + return GroupPnLu(pubSaDetails); + } + + /// + /// 结算数据分组Pn、Lu + /// + private List GroupPnLu(List pubSaDetails) + { + return pubSaDetails.GroupBy(t => new { t.PN, t.LU }).Select(t => + { + var pubSaDetail = t.First(); + pubSaDetail.Qty = t.Sum(t => t.Qty); + return pubSaDetail; + }).ToList(); } /// - /// 结算数据处理 + /// Insert结算数据 /// - private async Task SaDataHandleAsync(List pubSaDetails, EnumBusinessType businessType) + private async Task InsertSaDataAsync(List pubSaDetails, EnumBusinessType businessType) { //客户零件关系 var materialRelationships = new List(); diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/PendingDeductionService.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/PendingDeductionService.cs index 07b71e79..62e11260 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/PendingDeductionService.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/PendingDeductionService.cs @@ -21,6 +21,7 @@ using TaskJob.Interfaces; using Volo.Abp.Application.Services; using Volo.Abp.DependencyInjection; using Volo.Abp.Domain.Entities; +using Volo.Abp.Emailing; using Volo.Abp.Uow; using Win.Sfs.SettleAccount.Constant; using Win.Sfs.SettleAccount.Entities.BQ.Vmi; @@ -33,12 +34,16 @@ public class PendingDeductionService : ApplicationService, ITransientDependency, protected readonly SettleAccountDbContext _dbcontext; + private readonly IEmailSender _emailSender; + public PendingDeductionService( - SettleAccountDbContext dbcontext - + SettleAccountDbContext dbcontext, + + IEmailSender emailSender ) { + _emailSender = emailSender; _dbcontext = dbcontext; } @@ -49,6 +54,7 @@ public class PendingDeductionService : ApplicationService, ITransientDependency, var billList = property.Where(p => p.Name == "BillNumList").FirstOrDefault().Value; var type = property.Where(p => p.Name == "Type").FirstOrDefault().Value; var isout = property.Where(p => p.Name == "IsOut").FirstOrDefault().Value; + var email = property.Where(p => p.Name == "CurrentUserEmail").FirstOrDefault().Value; var list = billList.Split(","); var projectList = _dbcontext.Set().Where(p => p.Project == "库位"); @@ -76,7 +82,7 @@ public class PendingDeductionService : ApplicationService, ITransientDependency, itm.Extend2 = projectList.FirstOrDefault(p => p.Value == "JisBBAC顺义").Description; } } - Sync(jisdetail.ToList(), EnumDeliverBjBmpBillType.JIS件, isout == "out" ? true : false); + Sync(jisdetail.ToList(), EnumDeliverBjBmpBillType.JIS件,email ,isout == "out" ? true : false); } // var mdetail = _dbcontext.Set().Where(p => list.Contains(p.BillNum) && p.BusinessType == EnumBusinessType.MaiDanJianBBAC);//买单件 @@ -93,7 +99,7 @@ public class PendingDeductionService : ApplicationService, ITransientDependency, itm.Extend2 = projectList.FirstOrDefault(p => p.Value == "JisBBAC顺义").Description; } } - Sync(mdetail.ToList(), EnumDeliverBjBmpBillType.JIS件, isout == "out" ? true : false); + Sync(mdetail.ToList(), EnumDeliverBjBmpBillType.JIS件,email ,isout == "out" ? true : false); } var detailist1 = _dbcontext.Set().Where(p => list.Contains(p.BillNum) ).ToList(); @@ -112,7 +118,7 @@ public class PendingDeductionService : ApplicationService, ITransientDependency, itm.Extend2 = projectList.FirstOrDefault(p => p.Value == "ZhiGongJianBBAC顺义").Description; } } - Sync(zgbbaclist, EnumDeliverBjBmpBillType.JIT直供件, isout == "out" ? true : false); + Sync(zgbbaclist, EnumDeliverBjBmpBillType.JIT直供件,email, isout == "out" ? true : false); var ydlist = detailist1.Where(p => p.BusinessType == EnumBusinessType.YinDuJian).ToList(); if (ydlist.Count > 0) { @@ -123,7 +129,7 @@ public class PendingDeductionService : ApplicationService, ITransientDependency, itm.Extend2 = projectList.FirstOrDefault(p => p.Value == "YinDuJian").Description; } } - Sync(ydlist, EnumDeliverBjBmpBillType.印度件, isout == "out" ? true : false); + Sync(ydlist, EnumDeliverBjBmpBillType.印度件, email,isout == "out" ? true : false); } var bjlist = detailist1.Where(p => p.BusinessType == EnumBusinessType.BeiJian).ToList(); if (bjlist.Count > 0) @@ -135,12 +141,8 @@ public class PendingDeductionService : ApplicationService, ITransientDependency, itm.Extend2 = projectList.FirstOrDefault(p => p.Value == "BeiJian").Description; } } - Sync(bjlist, EnumDeliverBjBmpBillType.北汽4S备件, isout == "out" ? true : false); + Sync(bjlist, EnumDeliverBjBmpBillType.北汽4S备件,email ,isout == "out" ? true : false); } - - - - } } else if (type == "JisHBPO" || type == "ZhiGongJianHBPO" || type == "MaiDanJianHBPO") @@ -153,7 +155,7 @@ public class PendingDeductionService : ApplicationService, ITransientDependency, itm.Extend2 = "CC017"; } } - Sync(detailist, EnumDeliverBjBmpBillType.JIS件, isout == "out" ? true : false); + Sync(detailist, EnumDeliverBjBmpBillType.JIS件,email ,isout == "out" ? true : false); var mdetail = _dbcontext.Set().Where(p => list.Contains(p.BillNum) && p.BusinessType == EnumBusinessType.MaiDanJianHBPO);//买单件 foreach (var itm in mdetail) { @@ -162,7 +164,7 @@ public class PendingDeductionService : ApplicationService, ITransientDependency, itm.Extend2 = "CC017"; } } - Sync(mdetail.ToList(), EnumDeliverBjBmpBillType.JIS件, isout == "out" ? true : false); + Sync(mdetail.ToList(), EnumDeliverBjBmpBillType.JIS件,email ,isout == "out" ? true : false); var detailist1 = _dbcontext.Set().Where(p => list.Contains(p.BillNum)).ToList(); var zgbbaclist = detailist1.Where(p => p.BusinessType == EnumBusinessType.ZhiGongJianHBPO).ToList(); foreach (var itm in zgbbaclist) @@ -172,28 +174,28 @@ public class PendingDeductionService : ApplicationService, ITransientDependency, itm.Extend2 = "CC017"; } } - Sync(detailist, EnumDeliverBjBmpBillType.JIT直供件, isout == "out" ? true : false); + Sync(detailist, EnumDeliverBjBmpBillType.JIT直供件,email,isout == "out" ? true : false); } return id.ToString(); } - public List GetPagedData(List dataList, int pageNumber, int pageSize) - { - int startIndex = (pageNumber - 1) * pageSize; + //public List GetPagedData(List dataList, int pageNumber, int pageSize) + //{ + // int startIndex = (pageNumber - 1) * pageSize; - return dataList.Skip(startIndex).Take(pageSize).ToList(); - } - public int CalculatePageCount(int totalCount, int pageSize) - { - int pageCount = totalCount / pageSize; - if (totalCount % pageSize != 0) - { - pageCount += 1; - } - return pageCount; - } + // return dataList.Skip(startIndex).Take(pageSize).ToList(); + //} + //public int CalculatePageCount(int totalCount, int pageSize) + //{ + // int pageCount = totalCount / pageSize; + // if (totalCount % pageSize != 0) + // { + // pageCount += 1; + // } + // return pageCount; + //} - public void Sync(List p_ls, EnumDeliverBjBmpBillType bussinessType, bool flag=true) where T : PD_BASE,new() + public void Sync(List p_ls, EnumDeliverBjBmpBillType bussinessType,string p_email ,bool flag=true) where T : PD_BASE,new() { var query = from itm in p_ls select new VmiLog() @@ -218,8 +220,6 @@ public class PendingDeductionService : ApplicationService, ITransientDependency, ErpToLoc = itm.Extend2, //寄售库 }; var ls = query.ToList(); - - foreach (var itm in ls) { itm.SetId(GuidGenerator.Create()); @@ -232,11 +232,7 @@ public class PendingDeductionService : ApplicationService, ITransientDependency, // 执行批量数据操作 if (ls != null && ls.Count > 0) { - - var messagelist = new List(); - - foreach (var item in ls) { var message = new VmiMessage @@ -245,41 +241,127 @@ public class PendingDeductionService : ApplicationService, ITransientDependency, }; messagelist.Add(message); } + _dbcontext.BulkInsert(messagelist); + _dbcontext.BulkInsert(ls, new BulkConfig() { }); + var billList = p_ls.Select(p => p.BillNum).Distinct().ToList(); + var pdList = _dbcontext.Set().Where(p => billList.Contains(p.BillNum)).ToList(); + if (pdList.Count > 0) + { + foreach (var item in pdList) + { + if (flag == true) + { + item.State = SettleBillState.已扣减; + } + else + { + item.State = SettleBillState.客户已收票; + } - _dbcontext.BulkInsert(messagelist); - _dbcontext.BulkInsert(ls,new BulkConfig() { }); + } + _dbcontext.BulkUpdate(pdList); + } + var bbacList = _dbcontext.Set().Where(p => billList.Contains(p.BillNum)).ToList(); + if (bbacList.Count > 0) + { + foreach (var item in bbacList) + { + if (flag == true) + { + item.State = SettleBillState.已扣减; + } + else + { + item.State = SettleBillState.客户已收票; + } + } + _dbcontext.BulkUpdate(bbacList); + } + var hbpoList = _dbcontext.Set().Where(p => billList.Contains(p.BillNum)).ToList(); + if (hbpoList.Count > 0) + { + foreach (var item in hbpoList) + { + if (flag == true) + { + item.State = SettleBillState.已扣减; + } + else + { + item.State = SettleBillState.客户已收票; + } + } + _dbcontext.BulkUpdate(hbpoList); + } + } + + // _emailSender.SendAsync(e) - //var count = CalculatePageCount(ls.Count, 2000); - //for (int pagenumber = 0; pagenumber < count; pagenumber++) - //{ - // var lst = GetPagedData(ls, pagenumber++, 2000); - // var messagelist= new List(); - // foreach (var item in lst) - // { - // var message = new VmiMessage - // { - // Message = System.Text.Json.JsonSerializer.Serialize(item), - // }; - // messagelist.Add(message); - // } - // _dbcontext.BulkInsert(messagelist); - // _dbcontext.BulkInsert(lst,new BulkConfig() { }); - // Task.Delay(500); - //} - } // 提交事务 transaction.Commit(); } catch (Exception) { + var billList = p_ls.Select(p => p.BillNum).Distinct().ToList(); + var pdList = _dbcontext.Set().Where(p => billList.Contains(p.BillNum)).ToList(); + if (pdList.Count > 0) + { + foreach (var item in pdList) + { + if (flag == true) + { + item.State = SettleBillState.客户已收票; + } + else + { + item.State = SettleBillState.已扣减; + + } + + } + _dbcontext.BulkUpdate(pdList); + } + var bbacList = _dbcontext.Set().Where(p => billList.Contains(p.BillNum)).ToList(); + if (bbacList.Count > 0) + { + foreach (var item in bbacList) + { + if (flag == true) + { + item.State = SettleBillState.客户已收票; + } + else + { + item.State = SettleBillState.已扣减; + + } + } + _dbcontext.BulkUpdate(bbacList); + } + var hbpoList = _dbcontext.Set().Where(p => billList.Contains(p.BillNum)).ToList(); + if (hbpoList.Count > 0) + { + foreach (var item in hbpoList) + { + if (flag == true) + { + item.State = SettleBillState.客户已收票; + } + else + { + item.State = SettleBillState.已扣减; + + } + } + _dbcontext.BulkUpdate(hbpoList); + } // 回滚事务 transaction.Rollback(); throw; } - } - + } } diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccountApplicationModule.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccountApplicationModule.cs index 0030ff59..934e41e5 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccountApplicationModule.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccountApplicationModule.cs @@ -9,6 +9,8 @@ using Volo.Abp.AutoMapper; using Volo.Abp.BlobStoring; using Volo.Abp.BlobStoring.Minio; using Volo.Abp.Dapper; +using Volo.Abp.Emailing.Smtp; +using Volo.Abp.Emailing; using Volo.Abp.Http.Client.IdentityModel; using Volo.Abp.Identity; using Volo.Abp.Modularity; @@ -44,7 +46,7 @@ namespace Win.Sfs.SettleAccount ConfigureJson(context); //context.Services.AddTransient(typeof(INormalEfCoreRepository<,>), //typeof(SettleAccountNormalEfCoreRepository<,>)); - + context.Services.AddTransient(); context.Services.AddTransient(implementationFactory => { Func accesor = key => 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 955e1780..e62b7828 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 @@ -415,12 +415,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers { return await _repository.Where(p => invs.Contains(p.InvbillNum)).ToListAsync(); } - - - - - - /// /// 客户已收票 /// @@ -593,7 +587,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers return true; } - else if (inv.BusinessType == EnumBusinessType.JisHBPO) + else if (inv.BusinessType == EnumBusinessType.JisHBPO || inv.BusinessType == EnumBusinessType.MaiDanJianHBPO) { var pdlist = _pdhbpoRepository.Where(p => p_invs.Contains(p.BillNum)).ToList();//包含发票号的代扣减单 if (pdlist != null && pdlist.Count > 0) @@ -724,9 +718,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers extend3: string.Empty, extend4: itm.PartCode, p_businessType:itm.BusinessType - - - ); entity.RELU = string.IsNullOrEmpty(itm.RealPartCode) ? itm.PartCode : itm.RealPartCode;//厂内替换零件号 entity.Extend2 = itm.ErpLoc;//ERP库位 @@ -743,6 +734,10 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers await _repository.DbContext.BulkUpdateAsync(invList); return true; } + + + + else { var pdlist = _pdpubRepository.Where(p => p_invs.Contains(p.BillNum)).ToList();//包含发票号的代扣减单