From 7d578ce363c32739bd9b589deb9a3527e0b2cae8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A9=99=E5=AD=90?= <454313500@qq.com> Date: Wed, 4 Jan 2023 20:50:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E9=87=87=E8=B4=AD=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Config/SwaggerDoc.xml | 6 +-- .../Controllers/ERP/PurchaseController.cs | 6 +-- .../Purchase/MapperConfig/PurchaseProfile.cs | 2 +- .../Yi.Framework.DTOModel.csproj | 1 + .../ERP/Purchase/PurchaseCreateInput.cs | 21 +++++++++ .../ERP/Purchase/PurchaseGetListInput.cs | 18 ++++++++ .../ERP/Purchase/PurchaseUpdateInput.cs} | 2 +- .../Base/Crud/ICreateAppService.cs | 2 + .../ERP/IPurchaseService.cs | 4 +- .../ERP/Entitys/PurchaseEntity.cs | 4 +- .../Base/Crud/AbstractKeyCrudAppService.cs | 46 +++++++++++++++++++ .../ERP/PurchaseService.cs | 29 ++++++++++-- .../src/views/ERP/supplier/index.vue | 6 --- 13 files changed, 126 insertions(+), 21 deletions(-) create mode 100644 Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Purchase/PurchaseCreateInput.cs create mode 100644 Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Purchase/PurchaseGetListInput.cs rename Yi.Framework.Net6/{Yi.Framework.DTOModel/ERP/Purchase/PurchaseCreateUpdateInput.cs => Yi.Framework.DtoModel/ERP/Purchase/PurchaseUpdateInput.cs} (89%) diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Config/SwaggerDoc.xml b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Config/SwaggerDoc.xml index 76b70ba5..d8e11c85 100644 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Config/SwaggerDoc.xml +++ b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Config/SwaggerDoc.xml @@ -215,7 +215,7 @@ - + 分页查 @@ -227,14 +227,14 @@ - + - + diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/PurchaseController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/PurchaseController.cs index e710568e..5118f9f2 100644 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/PurchaseController.cs +++ b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/PurchaseController.cs @@ -22,7 +22,7 @@ namespace Yi.Framework.ApiMicroservice.Controllers.ERP /// /// [HttpGet] - public async Task PageList([FromQuery] PurchaseCreateUpdateInput input, [FromQuery] PageParModel page) + public async Task PageList([FromQuery] PurchaseGetListInput input, [FromQuery] PageParModel page) { var result = await _purchaseService.PageListAsync(input, page); return Result.Success().SetData(result); @@ -46,7 +46,7 @@ namespace Yi.Framework.ApiMicroservice.Controllers.ERP /// /// [HttpPost] - public async Task Create(PurchaseCreateUpdateInput input) + public async Task Create(PurchaseCreateInput input) { var result = await _purchaseService.CreateAsync(input); return Result.Success().SetData(result); @@ -60,7 +60,7 @@ namespace Yi.Framework.ApiMicroservice.Controllers.ERP /// [HttpPut] [Route("{id}")] - public async Task Update(long id, PurchaseCreateUpdateInput input) + public async Task Update(long id, PurchaseUpdateInput input) { var result = await _purchaseService.UpdateAsync(id, input); return Result.Success().SetData(result); diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/MapperConfig/PurchaseProfile.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/MapperConfig/PurchaseProfile.cs index 220daa82..a7a21a12 100644 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/MapperConfig/PurchaseProfile.cs +++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/MapperConfig/PurchaseProfile.cs @@ -12,7 +12,7 @@ namespace Yi.Framework.DtoModel.ERP.Purchase.MapperConfig { public SuppliERProfile() { - CreateMap(); + CreateMap(); CreateMap(); } diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/Yi.Framework.DTOModel.csproj b/Yi.Framework.Net6/Yi.Framework.DTOModel/Yi.Framework.DTOModel.csproj index d5610d9a..5f0148bf 100644 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/Yi.Framework.DTOModel.csproj +++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/Yi.Framework.DTOModel.csproj @@ -2,6 +2,7 @@ net6.0 + enable diff --git a/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Purchase/PurchaseCreateInput.cs b/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Purchase/PurchaseCreateInput.cs new file mode 100644 index 00000000..8317359a --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Purchase/PurchaseCreateInput.cs @@ -0,0 +1,21 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Yi.Framework.DtoModel.ERP.PurchaseDetails; +using Yi.Framework.Model.Base; +using Yi.Framework.Model.ERP.Entitys; + +namespace Yi.Framework.DtoModel.ERP.Purchase +{ + public class PurchaseCreateInput + { + public string Code { get; set; } = string.Empty; + public DateTime? NeedTime { get; set; } + public string Buyer { get; set; } = string.Empty; + + public List? PurchaseDetails { get; set; } + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Purchase/PurchaseGetListInput.cs b/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Purchase/PurchaseGetListInput.cs new file mode 100644 index 00000000..f67afb2e --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Purchase/PurchaseGetListInput.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Yi.Framework.Model.Base; +using Yi.Framework.Model.ERP.Entitys; + +namespace Yi.Framework.DtoModel.ERP.Purchase +{ + public class PurchaseGetListInput + { + public string? Code { get; set; } + public DateTime? NeedTime { get; set; } + public string? Buyer { get; set; } + public PurchaseStateEnum? PurchaseState { get; set; } + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/PurchaseCreateUpdateInput.cs b/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Purchase/PurchaseUpdateInput.cs similarity index 89% rename from Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/PurchaseCreateUpdateInput.cs rename to Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Purchase/PurchaseUpdateInput.cs index c7370660..691d2b73 100644 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/PurchaseCreateUpdateInput.cs +++ b/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Purchase/PurchaseUpdateInput.cs @@ -9,7 +9,7 @@ using Yi.Framework.Model.ERP.Entitys; namespace Yi.Framework.DtoModel.ERP.Purchase { - public class PurchaseCreateUpdateInput : EntityDto + public class PurchaseUpdateInput : EntityDto { public string Code { get; set; } public DateTime NeedTime { get; set; } diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/Base/Crud/ICreateAppService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/Base/Crud/ICreateAppService.cs index 26671aee..88f10f0a 100644 --- a/Yi.Framework.Net6/Yi.Framework.Interface/Base/Crud/ICreateAppService.cs +++ b/Yi.Framework.Net6/Yi.Framework.Interface/Base/Crud/ICreateAppService.cs @@ -17,5 +17,7 @@ namespace Yi.Framework.Interface.Base.Crud , in TCreateInputDto> : IApplicationService { Task CreateAsync(TCreateInputDto dto); + + Task CreateAsync(IEnumerable dtos); } } diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IPurchaseService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IPurchaseService.cs index 94630608..008898d6 100644 --- a/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IPurchaseService.cs +++ b/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IPurchaseService.cs @@ -9,8 +9,8 @@ using Yi.Framework.Interface.Base.Crud; namespace Yi.Framework.Interface.ERP { - public interface IPurchaseService : ICrudAppService + public interface IPurchaseService : ICrudAppService { - Task>> PageListAsync(PurchaseCreateUpdateInput input, PageParModel page); + Task>> PageListAsync(PurchaseGetListInput input, PageParModel page); } } diff --git a/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/PurchaseEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/PurchaseEntity.cs index b511c5a9..b5759df2 100644 --- a/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/PurchaseEntity.cs +++ b/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/PurchaseEntity.cs @@ -45,12 +45,12 @@ namespace Yi.Framework.Model.ERP.Entitys /// /// 总共金额 /// - public long TotalMoney { get; set; } + public float TotalMoney { get; set; } /// /// 已支付金额 /// - public long PaidMoney { get; set; } + public float PaidMoney { get; set; } /// /// 采购状态 diff --git a/Yi.Framework.Net6/Yi.Framework.Service/Base/Crud/AbstractKeyCrudAppService.cs b/Yi.Framework.Net6/Yi.Framework.Service/Base/Crud/AbstractKeyCrudAppService.cs index f31d825e..61c376a4 100644 --- a/Yi.Framework.Net6/Yi.Framework.Service/Base/Crud/AbstractKeyCrudAppService.cs +++ b/Yi.Framework.Net6/Yi.Framework.Service/Base/Crud/AbstractKeyCrudAppService.cs @@ -75,6 +75,18 @@ namespace Yi.Framework.Service.Base.Crud return entitydto; } + + public async virtual Task CreateAsync(IEnumerable dtos) + { + + var entity = await MapToEntitysAsync(dtos); + + TryToSetTenantId(entity); + + //这边需要进行判断,实体是什么guid还是雪花id + await Repository.InsertReturnSnowflakeIdAsync(entity); + } + /// /// 删除 /// @@ -126,6 +138,19 @@ namespace Yi.Framework.Service.Base.Crud MapToEntity(updateInput, entity); return Task.CompletedTask; } + + /// + /// 将 批量更新输入dto转化为实体的异步 + /// + /// + /// + protected virtual async Task> MapToEntitysAsync(IEnumerable updateInput) + { + List entitys = MapToEntitys(updateInput); + + return await Task.FromResult(entitys); + } + /// /// 将 更新输入dto转化为实体的同步方法 /// @@ -136,6 +161,17 @@ namespace Yi.Framework.Service.Base.Crud ObjectMapper.Map(updateInput, entity); } + /// + /// 将 批量更新输入dto转化为实体的同步方法 + /// + /// + /// + protected virtual List MapToEntitys(IEnumerable updateInput) + { + return ObjectMapper.Map>(updateInput); + } + + /// /// 创建dto 给 实体的转换的异步方法 /// @@ -203,6 +239,16 @@ namespace Yi.Framework.Service.Base.Crud //} } + protected virtual void TryToSetTenantId(IEnumerable entitys) + { + foreach (var entity in entitys) + { + TryToSetTenantId(entity); + } + + } + + /// /// 判断租户id的属性是否为空 /// diff --git a/Yi.Framework.Net6/Yi.Framework.Service/ERP/PurchaseService.cs b/Yi.Framework.Net6/Yi.Framework.Service/ERP/PurchaseService.cs index 22640c6b..d976746a 100644 --- a/Yi.Framework.Net6/Yi.Framework.Service/ERP/PurchaseService.cs +++ b/Yi.Framework.Net6/Yi.Framework.Service/ERP/PurchaseService.cs @@ -14,12 +14,17 @@ using Yi.Framework.Service.Base.Crud; namespace Yi.Framework.Service.ERP { - public class PurchaseService : CrudAppService, IPurchaseService + public class PurchaseService : CrudAppService, IPurchaseService { - public PurchaseService(IRepository repository, IMapper mapper) : base(repository, mapper) + private readonly ISugarUnitOfWork _unitOfWork; + private readonly IPurchaseDetailsService _purchaseDetailsService; + public PurchaseService(IRepository repository, IMapper mapper, ISugarUnitOfWork unitOfWork, + IPurchaseDetailsService purchaseDetailsService) : base(repository, mapper) { + _unitOfWork = unitOfWork; + _purchaseDetailsService = purchaseDetailsService; } - public async Task>> PageListAsync(PurchaseCreateUpdateInput input, PageParModel page) + public async Task>> PageListAsync(PurchaseGetListInput input, PageParModel page) { RefAsync totalNumber = 0; var data = await Repository._DbQueryable @@ -28,5 +33,23 @@ namespace Yi.Framework.Service.ERP .ToPageListAsync(page.PageNum, page.PageSize, totalNumber); return new PageModel> { Total = totalNumber.Value, Data = await MapToGetListOutputDtosAsync(data) }; } + + public override async Task CreateAsync(PurchaseCreateInput input) + { + + using (var uow = _unitOfWork.CreateContext()) + { + var entity = await MapToEntityAsync(input); + entity.PaidMoney = 0; + entity.TotalMoney = input.PurchaseDetails.Sum(u => u.UnitPrice * u.TotalNumber); + entity.PurchaseState = PurchaseStateEnum.Build; + TryToSetTenantId(entity); + var purchaseId = await Repository.InsertReturnSnowflakeIdAsync(entity); + + await _purchaseDetailsService.CreateAsync(input.PurchaseDetails); + } + + return null; + } } } diff --git a/Yi.Vue3.x.RuoYi/src/views/ERP/supplier/index.vue b/Yi.Vue3.x.RuoYi/src/views/ERP/supplier/index.vue index af45af98..3d9564f8 100644 --- a/Yi.Vue3.x.RuoYi/src/views/ERP/supplier/index.vue +++ b/Yi.Vue3.x.RuoYi/src/views/ERP/supplier/index.vue @@ -314,12 +314,6 @@ /** 表单重置 */ function reset() { - form.value = { - id: undefined, - title: undefined, - isDeleted: false, - remark: undefined, - }; proxy.resetForm("dataRef"); } /** 搜索按钮操作 */