diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_NOT_SA_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_NOT_SA_SERVICE.cs index 49e7c293..a0890649 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_NOT_SA_SERVICE.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_NOT_SA_SERVICE.cs @@ -14,6 +14,7 @@ using Win.Sfs.BaseData.ImportExcelCommon; using Win.Sfs.SettleAccount.Bases; using Win.Sfs.SettleAccount.Constant; using Win.Sfs.SettleAccount.Entities.BQ.Dtos; +using Win.Sfs.SettleAccount.Entities.BQ.Managers; using Win.Sfs.Shared.RepositoryBase; namespace Win.Sfs.SettleAccount.Entities.BQ @@ -30,53 +31,26 @@ namespace Win.Sfs.SettleAccount.Entities.BQ BBAC_NOT_SA_DETAIL_REQ_DTO, BBAC_NOT_SA_DETAIL_EXP_DTO> { + + + private readonly BBAC_NOT_SA_MNG _bbacNotMng; + public BBAC_NOT_SA_SERVICE( + BBAC_NOT_SA_MNG bbacNotMng, IExcelImportAppService excelImportService, INormalEfCoreRepository detailRepository) : base(excelImportService, detailRepository) { + _bbacNotMng = bbacNotMng; + } [HttpPost] public override async Task GenerateSettlementOrder(BBAC_NOT_SA_DETAIL_REQ_DTO input) { + var entitys = await _detailRepository.GetListByFilterAsync(input.Filters, input.Sorting, int.MaxValue, input.SkipCount); + await _bbacNotMng.GenerateSettlementOrder(entitys); - var billNum=OrderNumberGenerator.GenerateOrderNumber("C"); - var bbac = new BBAC_CAN_SA(guid: GuidGenerator.Create(), - version: input.Version, - billNum: billNum, - settleBillNum: string.Empty, - state: SettleBillState.未结状态, - invGroupNum: billNum, - site:entitys.FirstOrDefault().Site - - ); - - List ls = new List(); - foreach (var entity in entitys) { - - new BBAC_CAN_SA_DETAIL(guid:entity.Id - , keyCode: entity.KeyCode - , version: entity.Version - , billNum: billNum - , settleBillNum: entity.SettleBillNum - , lU: entity.LU - , pN: entity.PN - , site: entity.Site - , qty: entity.Qty - , price: entity.Price - , category: entity.BusinessType - , isReturn: entity.IsReturn - , settleDate: entity.SettleDate - , groupNum: entity.GroupNum - , invGroupNum: entity.InvGroupNum - ,contactid:entity.ContractDocID - ); - } - - await _detailRepository.DbContext.BulkInsertAsync(ls); - await _detailRepository.DbContext.BulkDeleteAsync(entitys); - await _detailRepository.DbContext.BulkInsertAsync(new List() { bbac}); return ApplicationConsts.SuccessStr; } diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_NOT_SA_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_NOT_SA_SERVICE.cs index 33001b34..cc5772b2 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_NOT_SA_SERVICE.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_NOT_SA_SERVICE.cs @@ -14,6 +14,7 @@ using Win.Sfs.BaseData.ImportExcelCommon; using Win.Sfs.SettleAccount.Bases; using Win.Sfs.SettleAccount.Constant; using Win.Sfs.SettleAccount.Entities.BQ.Dtos; +using Win.Sfs.SettleAccount.Entities.BQ.Managers; using Win.Sfs.Shared.RepositoryBase; namespace Win.Sfs.SettleAccount.Entities.BQ @@ -28,53 +29,22 @@ namespace Win.Sfs.SettleAccount.Entities.BQ HBPO_NOT_SA_DETAIL_DTO, HBPO_NOT_SA_DETAIL_REQ_DTO, HBPO_NOT_SA_DETAIL_EXP_DTO> + { - public HBPO_NOT_SA_SERVICE(IExcelImportAppService excelImportService, INormalEfCoreRepository detailRepository) : base(excelImportService, detailRepository) + private readonly HBPO_NOT_SA_MNG _hbpoNotMng; + public HBPO_NOT_SA_SERVICE(IExcelImportAppService excelImportService, + INormalEfCoreRepository detailRepository, + HBPO_NOT_SA_MNG hbpoNotMng + ) : base(excelImportService, detailRepository) { + _hbpoNotMng= hbpoNotMng; } public override async Task GenerateSettlementOrder(HBPO_NOT_SA_DETAIL_REQ_DTO input) { var entitys = await _detailRepository.GetListByFilterAsync(input.Filters, input.Sorting, int.MaxValue, input.SkipCount); - - var billNum = OrderNumberGenerator.GenerateOrderNumber("C"); - var hbpo= new HBPO_CAN_SA(guid: GuidGenerator.Create(), - version: input.Version, - billNum: billNum, - settleBillNum: string.Empty, - state: SettleBillState.未结状态, - invGroupNum: billNum, - site:entitys.FirstOrDefault().Site - - ); - - List ls = new List(); - foreach (var entity in entitys) - { - - new HBPO_CAN_SA_DETAIL(guid: entity.Id - , keyCode: entity.KeyCode - , version: entity.Version - , billNum: billNum - , settleBillNum: entity.SettleBillNum - , lU: entity.LU - , pN: entity.PN - , site: entity.Site - , qty: entity.Qty - , price: entity.Price - - , settleDate: entity.SettleDate - , groupNum: entity.GroupNum - , invGroupNum: entity.InvGroupNum - ,businessType: entity.BusinessType - - ); - } - await _detailRepository.DbContext.BulkInsertAsync(ls); - await _detailRepository.DbContext.BulkDeleteAsync(entitys); - await _detailRepository.DbContext.BulkInsertAsync(new List() { hbpo}); + await _hbpoNotMng.GenerateSettlementOrder(entitys); return ApplicationConsts.SuccessStr; - - + } } } diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_NOT_SA_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_NOT_SA_SERVICE.cs index 5b486b6f..b0abc85f 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_NOT_SA_SERVICE.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_NOT_SA_SERVICE.cs @@ -1,4 +1,4 @@ -using EFCore.BulkExtensions; +using EFCore.BulkExtensions; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; @@ -14,6 +14,7 @@ using Win.Sfs.BaseData.ImportExcelCommon; using Win.Sfs.SettleAccount.Bases; using Win.Sfs.SettleAccount.Constant; using Win.Sfs.SettleAccount.Entities.BQ.Dtos; +using Win.Sfs.SettleAccount.Entities.BQ.Managers; using Win.Sfs.Shared.RepositoryBase; namespace Win.Sfs.SettleAccount.Entities.BQ @@ -26,49 +27,20 @@ namespace Win.Sfs.SettleAccount.Entities.BQ PUB_NOT_SA_DETAIL_REQ_DTO, PUB_NOT_SA_DETAIL_EXP_DTO> { - public PUB_NOT_SA_SERVICE(IExcelImportAppService excelImportService, INormalEfCoreRepository detailRepository) : base(excelImportService, detailRepository) + private readonly PUB_NOT_SA_MNG _pubNotMng; + public PUB_NOT_SA_SERVICE( + IExcelImportAppService excelImportService, + INormalEfCoreRepository detailRepository, + PUB_NOT_SA_MNG pubNotMng + ) : base(excelImportService, detailRepository) { + _pubNotMng = pubNotMng; } public override async Task GenerateSettlementOrder(PUB_NOT_SA_DETAIL_REQ_DTO input) { var entitys = await _detailRepository.GetListByFilterAsync(input.Filters, input.Sorting, int.MaxValue, input.SkipCount); - var billNum = OrderNumberGenerator.GenerateOrderNumber("C"); - var hbpo = new PUB_CAN_SA(guid: GuidGenerator.Create(), - version: input.Version, - billNum: billNum, - settleBillNum: string.Empty, - state: SettleBillState.未结状态, - invGroupNum: billNum, - businessType:entitys.FirstOrDefault().BusinessType - ); - - List ls = new List(); - foreach (var entity in entitys) - { - - new PUB_CAN_SA_DETAIL( - guid: entity.Id - , keyCode: entity.KeyCode - , version: entity.Version - , billNum: billNum - , settleBillNum: entity.SettleBillNum - , lU: entity.LU - , pN: entity.PN - , site: entity.Site - , qty: entity.Qty - , price: entity.Price - ,businessType:entity.BusinessType - - , settleDate: entity.SettleDate - , groupNum: entity.GroupNum - , invGroupNum: entity.InvGroupNum - - ); - } - await _detailRepository.DbContext.BulkInsertAsync(ls); - await _detailRepository.DbContext.BulkDeleteAsync(entitys); - await _detailRepository.DbContext.BulkInsertAsync(new List() { hbpo }); + _pubNotMng.GenerateSettlementOrder(entitys); return ApplicationConsts.SuccessStr; } diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/BBAC_ADJ_DETAIL.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/BBAC_ADJ_DETAIL.cs new file mode 100644 index 00000000..645bfb46 --- /dev/null +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/BBAC_ADJ_DETAIL.cs @@ -0,0 +1,125 @@ +using SettleAccount.Bases; +using System; +using System.ComponentModel.DataAnnotations; +using Win.Sfs.SettleAccount; + +namespace SettleAccount.Domain.BQ; + + +[Display(Name = "BBAC不可结算导入明细")] +public class BBAC_ADJ_DETAIL:SA_NOT_BASE +{ + ///// + ///// 对应字段(Material+ExternalCalNumber) + ///// + //[Display(Name = "LU+生产码")] + //public string KeyCode { get; set; } = null!; + + ///// + ///// 期间 + ///// + //[Display(Name = "期间")] + //public int Version { get; set; } + + ///// + ///// 结算单号 + ///// + //[Display(Name = "结算单号")] + //public string SettleBillNum { get; set; } = null!; + + ///// + ///// 对应字段Material + ///// + //[Display(Name = "零件号")] + //public string LU { get; set; } = null!; + + ///// + ///// 对应字段ExternalCalNumber + ///// + //[Display(Name = "生产码")] + //public string PN { get; set; } = null!; + + /// + /// 选择工厂导入 + /// + [Display(Name = "工厂地点")] + public string Site { get; set; } = null!; + + /// + /// 对应字段Quantity + /// + //[Display(Name = "结算数量")] + //public decimal Qty { get; set; } + + ///// + ///// 匹配价格表对应区间对应地点带出 + ///// + //[Display(Name = "单价")] + //public decimal Price { get; set; } + + /// + /// ExternalCallNumber包含(R0)为买单件 1为JIS 2.为买单件 + /// + [Display(Name = "业务类别")] + public EnumBusinessType BusinessType { get; set; } + + /// + /// 对应字段MovementType,996正常,997为退货 + /// + [Display(Name = "是否退货")] + public string IsReturn { get; set; } = null!; + + //[Display(Name = "发票分组号")] + //public string InvGroupNum { get; set; } = null!; + + ///// + ///// 对应字段PostingDate + ///// + //[Display(Name = "结算日期(收货日期)")] + //public DateTime SettleDate { get; set; } + + /// + /// 对应字段Reference + /// + //[Display(Name = "结算分组")] + //public string GroupNum { get; set; } = null!; + + [Display(Name = "合同号")] + public string ContractDocID { get; set; } + [Display(Name = "作废发票号")] + public string OldInvBillNum { get; set; } + + [Display(Name = "发票号")] + public string InvBillNum { get; set; } + + public BBAC_ADJ_DETAIL() + { + + } + + public BBAC_ADJ_DETAIL(Guid guid, string keyCode, int version, string settleBillNum, string lU, string pN, string site, decimal qty, decimal price, EnumBusinessType category, string isReturn, string invGroupNum, DateTime settleDate, string groupNum,string contractDocID, string oldinv, string inv) + { + Id = guid; + KeyCode = keyCode; + Version = version; + SettleBillNum = settleBillNum; + LU = lU; + PN = pN; + Site = site; + Qty = qty; + Price = price; + BusinessType = category; + IsReturn = isReturn; + InvGroupNum = invGroupNum; + SettleDate = settleDate; + GroupNum = groupNum; + ContractDocID = contractDocID; + + + OldInvBillNum = oldinv; + + + InvBillNum =inv; + + } +} diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/BBAC_CAN_SA.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/BBAC_CAN_SA.cs index f026484b..00c8aa21 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/BBAC_CAN_SA.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/BBAC_CAN_SA.cs @@ -28,14 +28,14 @@ public class BBAC_CAN_SA : SA_CAN_BASE_MAIN ///// //[Display(Name = "发票分组号")] //public string InvGroupNum { get; set; } = null!; + public EnumBusinessType BusinessType { get; set; } public BBAC_CAN_SA() { } - - public BBAC_CAN_SA(Guid guid, int version, string billNum, string settleBillNum, SettleBillState state, string invGroupNum,string site):base(guid) + public BBAC_CAN_SA(Guid guid, int version, string billNum, string settleBillNum, SettleBillState state, string invGroupNum,string site, EnumBusinessType businessType) :base(guid) { Version = version; @@ -44,6 +44,7 @@ public class BBAC_CAN_SA : SA_CAN_BASE_MAIN State = state; InvGroupNum = invGroupNum; Site = site; + BusinessType = businessType; } } diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/HBPO_ADJ_DETAIL.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/HBPO_ADJ_DETAIL.cs new file mode 100644 index 00000000..a56c0168 --- /dev/null +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/HBPO_ADJ_DETAIL.cs @@ -0,0 +1,133 @@ +using SettleAccount.Bases; +using System; +using System.ComponentModel.DataAnnotations; +using Win.Sfs.SettleAccount; + +namespace SettleAccount.Domain.BQ; +// +//[Display(Name = "HBPO不可结算导入")] +//public class HBPO_NOT_SA: BaseEntity +//{ +// [Display(Name = "期间")] +// public int Version { get; set; } + +// [Display(Name = "结算单据")] +// [OneToMany] +// public string BillNum { get; set; } = null!; + +// [Display(Name = "出库单号")] +// public string DNBillNum { get; set; } = null!; + +// /// +// /// 1、新建 2、已有出库3、已有扣减寄售库 +// /// +// [Display(Name = "状态")] +// public string State { get; set; } = null!; + +// /// +// /// 明细记录行数 +// /// +// [Display(Name = "明细记录行数")] +// public string RecordCount { get; set; } = null!; +//} +[Display(Name = "HBPO不可结算导入明细")] +public class HBPO_ADJ_DETAIL : SA_NOT_BASE +{ + ///// + ///// 对应字段(PartNumber+ProductioNumber) + ///// + //[Display(Name = "LU+生产码")] + //public string KeyCode { get; set; } = null!; + + ///// + ///// 期间 + ///// + //[Display(Name = "期间")] + //public int Version { get; set; } + + //[Display(Name = "结算单号")] + //public string SettleBillNum { get; set; } = null!; + + ///// + ///// 对应字段PartNumber + ///// + //[Display(Name = "零件号")] + //public string LU { get; set; } = null!; + + ///// + ///// 对应字段productionlumber + ///// + //[Display(Name = "生产码")] + //public string PN { get; set; } = null!; + + /// + /// 对应字段filename 区分 cn1、cn5 + /// + [Display(Name = "工厂地点")] + public string Site { get; set; } = null!; + + /// + /// 对应字段Qty + /// + //[Display(Name = "结算数量")] + //public decimal Qty { get; set; } + + /// + /// 匹配价格表对应区间带出 + /// + //[Display(Name = "单价")] + //public decimal Price { get; set; } + + /// + /// 对应字段ReceiveDate + /// + //[Display(Name = "结算日期(收货日期)")] + //public DateTime SettleDate { get; set; } + + ///// + ///// 对应字段DeliveryNode + ///// + //[Display(Name = "结算分组")] + //public string GroupNum { get; set; } = null!; + + //[Display(Name = "发票分组号")] + //public string InvGroupNum { get; set; } = null!; + + /// + /// 业务类型 + /// + public EnumBusinessType BusinessType { get; set; } + + + [Display(Name = "作废发票号")] + public string OldInvBillNum { get; set; } + + [Display(Name = "发票号")] + public string InvBillNum { get; set; } + + + + + public HBPO_ADJ_DETAIL(Guid guid ,string keyCode, int version, string settleBillNum, string lU, string pN, string site, decimal qty, decimal price, DateTime settleDate, string groupNum, string invGroupNum, EnumBusinessType businessType, string oldinv, string inv) + { + Id = guid; + KeyCode = keyCode; + Version = version; + SettleBillNum = settleBillNum; + LU = lU; + PN = pN; + Site = site; + Qty = qty; + Price = price; + SettleDate = settleDate; + GroupNum = groupNum; + InvGroupNum = invGroupNum; + BusinessType = businessType; + OldInvBillNum = oldinv; + InvBillNum = inv; + } + + public HBPO_ADJ_DETAIL() + { + } +} diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/BBAC_NOT_SA_MNG.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/BBAC_NOT_SA_MNG.cs new file mode 100644 index 00000000..1b099345 --- /dev/null +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/BBAC_NOT_SA_MNG.cs @@ -0,0 +1,78 @@ +using SettleAccount.Bases; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Services; +using Volo.Abp; +using Win.Sfs.Shared.RepositoryBase; +using Win.Sfs.SettleAccount.Bases; +using EFCore.BulkExtensions; +using SettleAccount.Domain.BQ; + +namespace Win.Sfs.SettleAccount.Entities.BQ.Managers +{ + /// + /// 不能結算管理 + /// + /// + /// + /// + public class BBAC_NOT_SA_MNG : DomainService + + { + private readonly INormalEfCoreRepository _repository; + private readonly INormalEfCoreRepository _detailRepository; + private readonly INormalEfCoreRepository _notRepository; + + public BBAC_NOT_SA_MNG() + { + } + public BBAC_NOT_SA_MNG + ( + INormalEfCoreRepository repository, + INormalEfCoreRepository detailRepository, + INormalEfCoreRepository notRepository + ) + { + _repository = repository; + _detailRepository = detailRepository; + _notRepository = notRepository; + } + public virtual async Task GenerateSettlementOrder(List p_list) + { + var billNumber = OrderNumberGenerator.GenerateOrderNumber("N"); + var _entity = new BBAC_CAN_SA(); + _entity.BillNum = billNumber; + _entity.InvGroupNum = billNumber; + _entity.Version = DateTime.Now.Year + DateTime.Now.Month; + _entity.State = SettleBillState.未结状态; + _entity.SettleBillNum = string.Empty; + _entity.BusinessType = EnumBusinessType.BBAC; + var _entityList = new List(); + foreach (var itm in p_list) + { + var _detailEntity = new BBAC_CAN_SA_DETAIL(); + { + _detailEntity.SettleBillNum = itm.SettleBillNum; + _detailEntity.BillNum = billNumber; + _detailEntity.InvGroupNum = billNumber; + _detailEntity.LU = itm.LU; + _detailEntity.PN = itm.PN; + _detailEntity.GroupNum = itm.GroupNum; + _detailEntity.KeyCode = itm.KeyCode; + _detailEntity.Price = itm.Price; + _detailEntity.Version = itm.Version; + }; + _entityList.Add(_detailEntity); + } + await _repository.DbContext.BulkDeleteAsync(p_list); + await _repository.DbContext.BulkInsertAsync(new List() { _entity }); + await _repository.DbContext.BulkInsertAsync(_entityList); + return true; + } + + + } +} diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/HBPO_NOT_SA_MNG.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/HBPO_NOT_SA_MNG.cs new file mode 100644 index 00000000..c035f2ca --- /dev/null +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/HBPO_NOT_SA_MNG.cs @@ -0,0 +1,87 @@ +using SettleAccount.Bases; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Services; +using Volo.Abp; +using Win.Sfs.Shared.RepositoryBase; +using Win.Sfs.SettleAccount.Bases; +using EFCore.BulkExtensions; +using SettleAccount.Domain.BQ; + +namespace Win.Sfs.SettleAccount.Entities.BQ.Managers +{ + /// + /// 不能結算管理 + /// + /// + /// + /// + public class HBPO_NOT_SA_MNG : DomainService + //where TEntity : SA_CAN_BASE_MAIN, new() + //where TEntityDetail : SA_CAN_BASE, new() + //where TNOTDetail : SA_NOT_BASE + { + private readonly INormalEfCoreRepository _repository; + private readonly INormalEfCoreRepository _detailRepository; + private readonly INormalEfCoreRepository _notRepository; + + public HBPO_NOT_SA_MNG() + { + } + + public HBPO_NOT_SA_MNG + ( + INormalEfCoreRepository repository, + INormalEfCoreRepository detailRepository, + INormalEfCoreRepository notRepository + ) + { + _repository = repository; + _detailRepository = detailRepository; + _notRepository = notRepository; + } + public virtual async Task GenerateSettlementOrder(List p_list) + { + + + var billNumber = OrderNumberGenerator.GenerateOrderNumber("N"); + var _entity = new HBPO_CAN_SA(); + _entity.BillNum = billNumber; + _entity.InvGroupNum = billNumber; + _entity.Version = DateTime.Now.Year + DateTime.Now.Month; + _entity.State = SettleBillState.未结状态; + _entity.SettleBillNum = string.Empty; + _entity.BusinessType = p_list.FirstOrDefault().BusinessType; + var _entityList = new List(); + foreach (var itm in p_list) + { + var _detailEntity = new HBPO_CAN_SA_DETAIL( + GuidGenerator.Create(), + settleBillNum: itm.SettleBillNum, + billNum: billNumber, + invGroupNum: billNumber, + lU: itm.LU, + pN: itm.PN, + groupNum: itm.GroupNum, + keyCode: itm.KeyCode, + price: itm.Price, + version: itm.Version, + businessType: itm.BusinessType, + qty: itm.Qty, + settleDate: itm.SettleDate, + site: itm.Site + ); + _entityList.Add(_detailEntity); + } + await _notRepository.DbContext.BulkDeleteAsync(p_list); + await _repository.DbContext.BulkInsertAsync(new List() { _entity }); + await _repository.DbContext.BulkInsertAsync(_entityList); + return true; + } + + + } +} diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/PUB_NOT_SA_MNG.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/PUB_NOT_SA_MNG.cs new file mode 100644 index 00000000..cf7677b1 --- /dev/null +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/PUB_NOT_SA_MNG.cs @@ -0,0 +1,80 @@ +using SettleAccount.Bases; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Services; +using Volo.Abp; +using Win.Sfs.Shared.RepositoryBase; +using Win.Sfs.SettleAccount.Bases; +using EFCore.BulkExtensions; +using SettleAccount.Domain.BQ; + +namespace Win.Sfs.SettleAccount.Entities.BQ.Managers +{ + /// + /// 不能結算管理 + /// + /// + /// + /// + public class PUB_NOT_SA_MNG : DomainService + //where TEntity : SA_CAN_BASE_MAIN, new() + //where TEntityDetail : SA_CAN_BASE, new() + //where TNOTDetail : SA_NOT_BASE + { + private readonly INormalEfCoreRepository _repository; + private readonly INormalEfCoreRepository _detailRepository; + private readonly INormalEfCoreRepository _notRepository; + + public PUB_NOT_SA_MNG() + { + } + + public PUB_NOT_SA_MNG + ( + INormalEfCoreRepository repository, + INormalEfCoreRepository detailRepository, + INormalEfCoreRepository notRepository + ) + { + _repository = repository; + _detailRepository = detailRepository; + _notRepository = notRepository; + } + public virtual async Task GenerateSettlementOrder(List p_list) + { + var billNumber = OrderNumberGenerator.GenerateOrderNumber("N"); + var _entity = new PUB_CAN_SA(); + _entity.BillNum = billNumber; + _entity.InvGroupNum = billNumber; + _entity.Version = DateTime.Now.Year + DateTime.Now.Month; + _entity.State = SettleBillState.未结状态; + _entity.SettleBillNum = string.Empty; + var _entityList = new List(); + foreach (var itm in p_list) + { + var _detailEntity = new PUB_CAN_SA_DETAIL(); + { + _detailEntity.SettleBillNum = itm.SettleBillNum; + _detailEntity.BillNum = billNumber; + _detailEntity.InvGroupNum = billNumber; + _detailEntity.LU = itm.LU; + _detailEntity.PN = itm.PN; + _detailEntity.GroupNum = itm.GroupNum; + _detailEntity.KeyCode = itm.KeyCode; + _detailEntity.Price = itm.Price; + _detailEntity.Version = itm.Version; + }; + _entityList.Add(_detailEntity); + } + await _notRepository.DbContext.BulkDeleteAsync(p_list); + await _repository.DbContext.BulkInsertAsync(new List() { _entity }); + await _repository.DbContext.BulkInsertAsync(_entityList); + return true; + } + + + } +} diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/PUB_ADJ_DETAIL.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/PUB_ADJ_DETAIL.cs new file mode 100644 index 00000000..5c69b5e2 --- /dev/null +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/PUB_ADJ_DETAIL.cs @@ -0,0 +1,98 @@ +using SettleAccount.Bases; +using System; +using System.ComponentModel.DataAnnotations; +using Win.Sfs.SettleAccount; + +namespace SettleAccount.Domain.BQ; + +[Display(Name = "PUB不可结算导入明细")] +public class PUB_ADJ_DETAIL : SA_NOT_BASE +{ + //[Display(Name = "LU+生产码")] + //public string KeyCode { get; set; } = null!; + + ///// + ///// 期间 + ///// + //[Display(Name = "期间")] + //public int Version { get; set; } + + ///// + ///// 结算单号 + ///// + //[Display(Name = "结算单号")] + //public string SettleBillNum { get; set; } = null!; + + /// + /// 对应字段Material + /// + //[Display(Name = "零件号")] + //public string LU { get; set; } = null!; + + ///// + ///// 对应字段ExternalCalNumber + ///// + //[Display(Name = "生产码")] + //public string PN { get; set; } = null!; + + /// + /// 选择工厂导入 + /// + [Display(Name = "工厂地点")] + public string Site { get; set; } = null!; + + /// + /// 对应字段Quantity + /// + //[Display(Name = "结算数量")] + //public decimal Qty { get; set; } + + [Display(Name = "扩展1")] + public string Extend1 { get; set; } = null!; + + + //[Display(Name = "单价")] + //public decimal Price { get; set; } + //[Display(Name = "发票分组号")] + //public string InvGroupNum { get; set; } = null!; + /// + /// 对应字段PostingDate + /// + //[Display(Name = "结算日期(收货日期)")] + //public DateTime SettleDate { get; set; } + [Display(Name = "业务分类")] + public EnumBusinessType BusinessType { get; set; } + //[Display(Name = "结算分组")] + //public string GroupNum { get; set; } = null!; + [Display(Name = "作废发票号")] + public string OldInvBillNum { get; set; } + + [Display(Name = "发票号")] + public string InvBillNum { get; set; } + + + public PUB_ADJ_DETAIL(string keyCode, int version, string settleBillNum, string lU, string pN, + string site, decimal qty, string extend1, decimal price, string invGroupNum, DateTime settleDate, + EnumBusinessType businessType, string groupNum,string oldinv,string inv) + { + KeyCode = keyCode; + Version = version; + SettleBillNum = settleBillNum; + LU = lU; + PN = pN; + Site = site; + Qty = qty; + Extend1 = extend1; + Price = price; + InvGroupNum = invGroupNum; + SettleDate = settleDate; + BusinessType = businessType; + GroupNum = groupNum; + OldInvBillNum= oldinv; + InvBillNum = inv; + } + + public PUB_ADJ_DETAIL() + { + } +} diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/EntityFrameworkCore/SettleAccountDbContextModelCreatingExtensions.cs b/code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/EntityFrameworkCore/SettleAccountDbContextModelCreatingExtensions.cs index 7582fdb3..b140ff4b 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/EntityFrameworkCore/SettleAccountDbContextModelCreatingExtensions.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/EntityFrameworkCore/SettleAccountDbContextModelCreatingExtensions.cs @@ -100,6 +100,11 @@ namespace Win.Sfs.SettleAccount builder.ConfigurePUB_SEC_DETAIL(options); builder.ConfigureHBPO_SEC_DETAIL(options); builder.ConfigureBBAC_SEC_DETAIL(options); + + + builder.ConfigurePUB_ADJ_DETAIL(options); + builder.ConfigureBBAC_ADJ_DETAIL(options); + builder.ConfigureHBPO_ADJ_DETAIL(options); //大众发票导入 //builder.ConfigureInvoice(options); //builder.ConfigureInvoiceVersion(options); @@ -1151,6 +1156,75 @@ namespace Win.Sfs.SettleAccount }); } + private static void ConfigurePUB_ADJ_DETAIL(this ModelBuilder builder, SettleAccountModelBuilderConfigurationOptions options) + { + + builder.Entity(b => + { + + b.ToTable($"{options.TablePrefix}_PUB_ADJ_DETAIL", options.Schema); + + b.ConfigureByConvention(); + b.Property(x => x.Site).HasMaxLength(50); + b.Property(x => x.Extend1).HasMaxLength(50); + b.Property(x => x.OldInvBillNum).HasMaxLength(50); + b.Property(x => x.InvBillNum).HasMaxLength(50); + b.Property(x => x.SettleBillNum).HasMaxLength(50); + b.Property(x => x.InvGroupNum).HasMaxLength(50); + b.Property(x => x.LU).HasMaxLength(50); + b.Property(x => x.PN).HasMaxLength(50); + b.Property(x => x.KeyCode).HasMaxLength(50); + b.Property(x => x.GroupNum).HasMaxLength(50); + b.Property(x => x.ConcurrencyStamp).HasMaxLength(50); + }); + } + + private static void ConfigureHBPO_ADJ_DETAIL(this ModelBuilder builder, SettleAccountModelBuilderConfigurationOptions options) + { + + builder.Entity(b => + { + + b.ToTable($"{options.TablePrefix}_HBPO_ADJ_DETAIL", options.Schema); + + b.ConfigureByConvention(); + b.Property(x => x.Site).HasMaxLength(50); + b.Property(x => x.OldInvBillNum).HasMaxLength(50); + b.Property(x => x.InvBillNum).HasMaxLength(50); + b.Property(x => x.SettleBillNum).HasMaxLength(50); + b.Property(x => x.InvGroupNum).HasMaxLength(50); + b.Property(x => x.LU).HasMaxLength(50); + b.Property(x => x.PN).HasMaxLength(50); + b.Property(x => x.KeyCode).HasMaxLength(50); + b.Property(x => x.GroupNum).HasMaxLength(50); + b.Property(x => x.ConcurrencyStamp).HasMaxLength(50); + }); + } + private static void ConfigureBBAC_ADJ_DETAIL(this ModelBuilder builder, SettleAccountModelBuilderConfigurationOptions options) + { + + builder.Entity(b => + { + + b.ToTable($"{options.TablePrefix}_BBAC_ADJ_DETAIL", options.Schema); + + b.ConfigureByConvention(); + b.Property(x => x.Site).HasMaxLength(50); + b.Property(x => x.IsReturn).HasMaxLength(50); + b.Property(x => x.ContractDocID).HasMaxLength(50); + b.Property(x => x.OldInvBillNum).HasMaxLength(50); + b.Property(x => x.InvBillNum).HasMaxLength(50); + b.Property(x => x.SettleBillNum).HasMaxLength(50); + b.Property(x => x.InvGroupNum).HasMaxLength(50); + b.Property(x => x.LU).HasMaxLength(50); + b.Property(x => x.PN).HasMaxLength(50); + b.Property(x => x.KeyCode).HasMaxLength(50); + b.Property(x => x.GroupNum).HasMaxLength(50); + b.Property(x => x.ConcurrencyStamp).HasMaxLength(50); + }); + } + + private static void ConfigureVmi(this ModelBuilder builder, SettleAccountModelBuilderConfigurationOptions options) { builder.Entity(b => @@ -1200,6 +1274,15 @@ namespace Win.Sfs.SettleAccount b.ConfigureByConvention(); }); + + + + + + + + + //seed builder.Entity().HasData(new JobItem("vmi".ToGuid()) { Name = "库存快照", Cron = "0 0 8 26 *", Service = "Win.Sfs.SettleAccount.Entities.BQ.VmiService" }); builder.Entity().HasData(new VmiCategory("发运".ToGuid()) { Type = VmiType.In, Name = "发运", Number = "100" });