采购订单搭建

This commit is contained in:
陈淳
2023-01-04 18:16:56 +08:00
parent e8e6b928cf
commit e03e584684
25 changed files with 918 additions and 332 deletions

View File

@@ -215,6 +215,74 @@
<param name="ids"></param>
<returns></returns>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.ERP.PurchaseController.PageList(Yi.Framework.DtoModel.ERP.Purchase.PurchaseCreateUpdateInput,Yi.Framework.Common.Models.PageParModel)">
<summary>
分页查
</summary>
<returns></returns>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.ERP.PurchaseController.GetById(System.Int64)">
<summary>
单查
</summary>
<returns></returns>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.ERP.PurchaseController.Create(Yi.Framework.DtoModel.ERP.Purchase.PurchaseCreateUpdateInput)">
<summary>
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.ERP.PurchaseController.Update(System.Int64,Yi.Framework.DtoModel.ERP.Purchase.PurchaseCreateUpdateInput)">
<summary>
</summary>
<param name="id"></param>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.ERP.PurchaseController.Del(System.Collections.Generic.List{System.Int64})">
<summary>
</summary>
<param name="ids"></param>
<returns></returns>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.ERP.PurchaseDetailsController.PageList(Yi.Framework.DtoModel.ERP.PurchaseDetails.PurchaseDetailsCreateUpdateInput,Yi.Framework.Common.Models.PageParModel)">
<summary>
分页查
</summary>
<returns></returns>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.ERP.PurchaseDetailsController.GetById(System.Int64)">
<summary>
单查
</summary>
<returns></returns>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.ERP.PurchaseDetailsController.Create(Yi.Framework.DtoModel.ERP.PurchaseDetails.PurchaseDetailsCreateUpdateInput)">
<summary>
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.ERP.PurchaseDetailsController.Update(System.Int64,Yi.Framework.DtoModel.ERP.PurchaseDetails.PurchaseDetailsCreateUpdateInput)">
<summary>
</summary>
<param name="id"></param>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.ERP.PurchaseDetailsController.Del(System.Collections.Generic.List{System.Int64})">
<summary>
</summary>
<param name="ids"></param>
<returns></returns>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.ERP.SupplierController.PageList(Yi.Framework.DtoModel.ERP.Supplier.SupplierCreateUpdateInput,Yi.Framework.Common.Models.PageParModel)">
<summary>
分页查

View File

@@ -0,0 +1,81 @@
using Microsoft.AspNetCore.Mvc;
using Yi.Framework.Common.Models;
using Yi.Framework.DtoModel.ERP.Purchase;
using Yi.Framework.Interface.ERP;
namespace Yi.Framework.ApiMicroservice.Controllers.ERP
{
[ApiController]
[Route("api/[controller]/[action]")]
public class PurchaseController : ControllerBase
{
private readonly ILogger<PurchaseController> _logger;
private readonly IPurchaseService _purchaseService;
public PurchaseController(ILogger<PurchaseController> logger, IPurchaseService purchaseService)
{
_logger = logger;
_purchaseService = purchaseService;
}
/// <summary>
/// 分页查
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<Result> PageList([FromQuery] PurchaseCreateUpdateInput input, [FromQuery] PageParModel page)
{
var result = await _purchaseService.PageListAsync(input, page);
return Result.Success().SetData(result);
}
/// <summary>
/// 单查
/// </summary>
/// <returns></returns>
[HttpGet]
[Route("{id}")]
public async Task<Result> GetById(long id)
{
var result = await _purchaseService.GetByIdAsync(id);
return Result.Success().SetData(result);
}
/// <summary>
/// 增
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<Result> Create(PurchaseCreateUpdateInput input)
{
var result = await _purchaseService.CreateAsync(input);
return Result.Success().SetData(result);
}
/// <summary>
/// 更
/// </summary>
/// <param name="id"></param>
/// <param name="input"></param>
/// <returns></returns>
[HttpPut]
[Route("{id}")]
public async Task<Result> Update(long id, PurchaseCreateUpdateInput input)
{
var result = await _purchaseService.UpdateAsync(id, input);
return Result.Success().SetData(result);
}
/// <summary>
/// 删
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
[HttpDelete]
public async Task<Result> Del(List<long> ids)
{
await _purchaseService.DeleteAsync(ids);
return Result.Success();
}
}
}

View File

@@ -0,0 +1,81 @@
using Microsoft.AspNetCore.Mvc;
using Yi.Framework.Common.Models;
using Yi.Framework.DtoModel.ERP.PurchaseDetails;
using Yi.Framework.Interface.ERP;
namespace Yi.Framework.ApiMicroservice.Controllers.ERP
{
[ApiController]
[Route("api/[controller]/[action]")]
public class PurchaseDetailsController : ControllerBase
{
private readonly ILogger<PurchaseDetailsController> _logger;
private readonly IPurchaseDetailsService _purchaseDetailsService;
public PurchaseDetailsController(ILogger<PurchaseDetailsController> logger, IPurchaseDetailsService purchaseDetailsService)
{
_logger = logger;
_purchaseDetailsService = purchaseDetailsService;
}
/// <summary>
/// 分页查
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<Result> PageList([FromQuery] PurchaseDetailsCreateUpdateInput input, [FromQuery] PageParModel page)
{
var result = await _purchaseDetailsService.PageListAsync(input, page);
return Result.Success().SetData(result);
}
/// <summary>
/// 单查
/// </summary>
/// <returns></returns>
[HttpGet]
[Route("{id}")]
public async Task<Result> GetById(long id)
{
var result = await _purchaseDetailsService.GetByIdAsync(id);
return Result.Success().SetData(result);
}
/// <summary>
/// 增
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<Result> Create(PurchaseDetailsCreateUpdateInput input)
{
var result = await _purchaseDetailsService.CreateAsync(input);
return Result.Success().SetData(result);
}
/// <summary>
/// 更
/// </summary>
/// <param name="id"></param>
/// <param name="input"></param>
/// <returns></returns>
[HttpPut]
[Route("{id}")]
public async Task<Result> Update(long id, PurchaseDetailsCreateUpdateInput input)
{
var result = await _purchaseDetailsService.UpdateAsync(id, input);
return Result.Success().SetData(result);
}
/// <summary>
/// 删
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
[HttpDelete]
public async Task<Result> Del(List<long> ids)
{
await _purchaseDetailsService.DeleteAsync(ids);
return Result.Success();
}
}
}

View File

@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Framework.DtoModel.ERP.Purchase.ConstConfig
{
public class PurchaseConst
{
}
}

View File

@@ -0,0 +1,20 @@
using AutoMapper;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Yi.Framework.Model.ERP.Entitys;
namespace Yi.Framework.DtoModel.ERP.Purchase.MapperConfig
{
public class SuppliERProfile:Profile
{
public SuppliERProfile()
{
CreateMap<PurchaseCreateUpdateInput, PurchaseEntity>();
CreateMap<PurchaseEntity, PurchaseGetListOutput>();
}
}
}

View File

@@ -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.Model.Base;
using Yi.Framework.Model.ERP.Entitys;
namespace Yi.Framework.DtoModel.ERP.Purchase
{
public class PurchaseCreateUpdateInput : EntityDto<long>
{
public string Code { get; set; }
public DateTime NeedTime { get; set; }
public string Buyer { get; set; }
public long TotalMoney { get; set; }
public long PaidMoney { get; set; }
public PurchaseStateEnum PurchaseState { get; set; }
}
}

View File

@@ -0,0 +1,20 @@
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 PurchaseGetListOutput: EntityDto<long>
{
public string Code { get; set; }
public DateTime NeedTime { get; set; }
public string Buyer { get; set; }
public long TotalMoney { get; set; }
public long PaidMoney { get; set; }
public PurchaseStateEnum PurchaseState { get; set; }
}
}

View File

@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Framework.DtoModel.ERP.PurchaseDetails.ConstConfig
{
public class PurchaseDetailsConst
{
}
}

View File

@@ -0,0 +1,20 @@
using AutoMapper;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Yi.Framework.Model.ERP.Entitys;
namespace Yi.Framework.DtoModel.ERP.PurchaseDetails.MapperConfig
{
public class SuppliERProfile:Profile
{
public SuppliERProfile()
{
CreateMap<PurchaseDetailsCreateUpdateInput, PurchaseDetailsEntity>();
CreateMap<PurchaseDetailsEntity, PurchaseDetailsGetListOutput>();
}
}
}

View File

@@ -0,0 +1,19 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Yi.Framework.Model.Base;
namespace Yi.Framework.DtoModel.ERP.PurchaseDetails
{
public class PurchaseDetailsCreateUpdateInput : EntityDto<long>
{
public string MaterialUnit { get; set; }
public float UnitPrice { get; set; }
public long TotalNumber { get; set; }
public long CompleteNumber { get; set; }
public string Remarks { get; set; }
}
}

View File

@@ -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;
namespace Yi.Framework.DtoModel.ERP.PurchaseDetails
{
public class PurchaseDetailsGetListOutput: EntityDto<long>
{
public string MaterialUnit { get; set; }
public float UnitPrice { get; set; }
public long TotalNumber { get; set; }
public long CompleteNumber { get; set; }
public string Remarks { get; set; }
}
}

View File

@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Yi.Framework.Common.Models;
using Yi.Framework.DtoModel.ERP.PurchaseDetails;
using Yi.Framework.Interface.Base.Crud;
namespace Yi.Framework.Interface.ERP
{
public interface IPurchaseDetailsService : ICrudAppService<PurchaseDetailsGetListOutput, long, PurchaseDetailsCreateUpdateInput>
{
Task<PageModel<List<PurchaseDetailsGetListOutput>>> PageListAsync(PurchaseDetailsCreateUpdateInput input, PageParModel page);
}
}

View File

@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Yi.Framework.Common.Models;
using Yi.Framework.DtoModel.ERP.Purchase;
using Yi.Framework.Interface.Base.Crud;
namespace Yi.Framework.Interface.ERP
{
public interface IPurchaseService : ICrudAppService<PurchaseGetListOutput, long, PurchaseCreateUpdateInput>
{
Task<PageModel<List<PurchaseGetListOutput>>> PageListAsync(PurchaseCreateUpdateInput input, PageParModel page);
}
}

View File

@@ -37,10 +37,15 @@ namespace Yi.Framework.Model.ERP.Entitys
/// </summary>
public long MaterialId { get; set; }
/// <summary>
/// 物料单位
/// </summary>
public string MaterialUnit { get; set; }
/// <summary>
/// 单价
/// </summary>
public float UnitPrice { get; set; }
/// <summary>
/// 总数量

View File

@@ -0,0 +1,32 @@
using AutoMapper;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Yi.Framework.Common.Models;
using Yi.Framework.DtoModel.ERP.PurchaseDetails;
using Yi.Framework.Interface.ERP;
using Yi.Framework.Model.ERP.Entitys;
using Yi.Framework.Repository;
using Yi.Framework.Service.Base.Crud;
namespace Yi.Framework.Service.ERP
{
public class PurchaseDetailsService : CrudAppService<PurchaseDetailsEntity, PurchaseDetailsGetListOutput, long, PurchaseDetailsCreateUpdateInput>, IPurchaseDetailsService
{
public PurchaseDetailsService(IRepository<PurchaseDetailsEntity> repository, IMapper mapper) : base(repository, mapper)
{
}
public async Task<PageModel<List<PurchaseDetailsGetListOutput>>> PageListAsync(PurchaseDetailsCreateUpdateInput input, PageParModel page)
{
RefAsync<int> totalNumber = 0;
var data = await Repository._DbQueryable
//.WhereIF(input.Code is not null,u=>u.Code.Contains(input.Code))
//.WhereIF(input.Name is not null, u => u.Name.Contains(input.Name))
.ToPageListAsync(page.PageNum, page.PageSize, totalNumber);
return new PageModel<List<PurchaseDetailsGetListOutput>> { Total = totalNumber.Value, Data = await MapToGetListOutputDtosAsync(data) };
}
}
}

View File

@@ -0,0 +1,32 @@
using AutoMapper;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Yi.Framework.Common.Models;
using Yi.Framework.DtoModel.ERP.Purchase;
using Yi.Framework.Interface.ERP;
using Yi.Framework.Model.ERP.Entitys;
using Yi.Framework.Repository;
using Yi.Framework.Service.Base.Crud;
namespace Yi.Framework.Service.ERP
{
public class PurchaseService : CrudAppService<PurchaseEntity, PurchaseGetListOutput, long, PurchaseCreateUpdateInput>, IPurchaseService
{
public PurchaseService(IRepository<PurchaseEntity> repository, IMapper mapper) : base(repository, mapper)
{
}
public async Task<PageModel<List<PurchaseGetListOutput>>> PageListAsync(PurchaseCreateUpdateInput input, PageParModel page)
{
RefAsync<int> totalNumber = 0;
var data = await Repository._DbQueryable
//.WhereIF(input.Code is not null,u=>u.Code.Contains(input.Code))
//.WhereIF(input.Name is not null, u => u.Name.Contains(input.Name))
.ToPageListAsync(page.PageNum, page.PageSize, totalNumber);
return new PageModel<List<PurchaseGetListOutput>> { Total = totalNumber.Value, Data = await MapToGetListOutputDtosAsync(data) };
}
}
}

View File

@@ -67,6 +67,11 @@ namespace Yi.Framework.Template.Abstract
continue;
}
}
//以}结尾不包含get不是属性代表类结尾
if (enetityDatas[i].EndsWith("}") && !enetityDatas[i].Contains("get"))
{
break;
}
}
//拼接实体字段

View File

@@ -41,13 +41,10 @@ namespace Yi.Framework.WebCore.MiddlewareExtend
}
catch (Exception ex)
{
_logger.LogError("系统错误",ex);
_logger.LogError(ex,$"系统错误:{ex.Message}");
//await _errorHandle.Invoer(context, ex);
var statusCode = context.Response.StatusCode;
if (ex is ArgumentException)
{
statusCode = 200;
}
context.Response.StatusCode = 500;
await HandleExceptionAsync(context, statusCode, ex.Message);
}
finally