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");
}
/** 搜索按钮操作 */