diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Config/SwaggerDoc.xml b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Config/SwaggerDoc.xml index c01313fc..5321a160 100644 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Config/SwaggerDoc.xml +++ b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Config/SwaggerDoc.xml @@ -181,6 +181,40 @@ + + + 分页查 + + + + + + 单查 + + + + + + 增 + + + + + + + 更 + + + + + + + + 删 + + + + 分页查 @@ -215,6 +249,74 @@ + + + 分页查 + + + + + + 单查 + + + + + + 增 + + + + + + + 更 + + + + + + + + 删 + + + + + + + 分页查 + + + + + + 单查 + + + + + + 增 + + + + + + + 更 + + + + + + + + 删 + + + + 增 diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/MaterialController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/MaterialController.cs new file mode 100644 index 00000000..c1ca9d68 --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/MaterialController.cs @@ -0,0 +1,81 @@ +using Microsoft.AspNetCore.Mvc; +using Yi.Framework.Common.Models; +using Yi.Framework.DtoModel.ERP.Material; +using Yi.Framework.Interface.ERP; + +namespace Yi.Framework.ApiMicroservice.Controllers.ERP +{ + [ApiController] + [Route("api/[controller]/[action]")] + public class MaterialController : ControllerBase + { + private readonly ILogger _logger; + private readonly IMaterialService _materialService; + public MaterialController(ILogger logger, IMaterialService materialService) + { + _logger = logger; + _materialService = materialService; + } + + /// + /// 分页查 + /// + /// + [HttpGet] + public async Task PageList([FromQuery] MaterialCreateUpdateInput input, [FromQuery] PageParModel page) + { + var result = await _materialService.PageListAsync(input, page); + return Result.Success().SetData(result); + } + + /// + /// 单查 + /// + /// + [HttpGet] + [Route("{id}")] + public async Task GetById(long id) + { + var result = await _materialService.GetByIdAsync(id); + return Result.Success().SetData(result); + } + + /// + /// 增 + /// + /// + /// + [HttpPost] + public async Task Create(MaterialCreateUpdateInput input) + { + var result = await _materialService.CreateAsync(input); + return Result.Success().SetData(result); + } + + /// + /// 更 + /// + /// + /// + /// + [HttpPut] + [Route("{id}")] + public async Task Update(long id, MaterialCreateUpdateInput input) + { + var result = await _materialService.UpdateAsync(id, input); + return Result.Success().SetData(result); + } + + /// + /// 删 + /// + /// + /// + [HttpDelete] + public async Task Del(List ids) + { + await _materialService.DeleteAsync(ids); + return Result.Success(); + } + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/UnitController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/UnitController.cs new file mode 100644 index 00000000..ae3fccb5 --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/UnitController.cs @@ -0,0 +1,81 @@ +using Microsoft.AspNetCore.Mvc; +using Yi.Framework.Common.Models; +using Yi.Framework.DtoModel.ERP.Unit; +using Yi.Framework.Interface.ERP; + +namespace Yi.Framework.ApiMicroservice.Controllers.ERP +{ + [ApiController] + [Route("api/[controller]/[action]")] + public class UnitController : ControllerBase + { + private readonly ILogger _logger; + private readonly IUnitService _unitService; + public UnitController(ILogger logger, IUnitService unitService) + { + _logger = logger; + _unitService = unitService; + } + + /// + /// 分页查 + /// + /// + [HttpGet] + public async Task PageList([FromQuery] UnitCreateUpdateInput input, [FromQuery] PageParModel page) + { + var result = await _unitService.PageListAsync(input, page); + return Result.Success().SetData(result); + } + + /// + /// 单查 + /// + /// + [HttpGet] + [Route("{id}")] + public async Task GetById(long id) + { + var result = await _unitService.GetByIdAsync(id); + return Result.Success().SetData(result); + } + + /// + /// 增 + /// + /// + /// + [HttpPost] + public async Task Create(UnitCreateUpdateInput input) + { + var result = await _unitService.CreateAsync(input); + return Result.Success().SetData(result); + } + + /// + /// 更 + /// + /// + /// + /// + [HttpPut] + [Route("{id}")] + public async Task Update(long id, UnitCreateUpdateInput input) + { + var result = await _unitService.UpdateAsync(id, input); + return Result.Success().SetData(result); + } + + /// + /// 删 + /// + /// + /// + [HttpDelete] + public async Task Del(List ids) + { + await _unitService.DeleteAsync(ids); + return Result.Success(); + } + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/WarehouseController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/WarehouseController.cs new file mode 100644 index 00000000..56cd4964 --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/WarehouseController.cs @@ -0,0 +1,81 @@ +using Microsoft.AspNetCore.Mvc; +using Yi.Framework.Common.Models; +using Yi.Framework.DtoModel.ERP.Warehouse; +using Yi.Framework.Interface.ERP; + +namespace Yi.Framework.ApiMicroservice.Controllers.ERP +{ + [ApiController] + [Route("api/[controller]/[action]")] + public class WarehouseController : ControllerBase + { + private readonly ILogger _logger; + private readonly IWarehouseService _warehouseService; + public WarehouseController(ILogger logger, IWarehouseService warehouseService) + { + _logger = logger; + _warehouseService = warehouseService; + } + + /// + /// 分页查 + /// + /// + [HttpGet] + public async Task PageList([FromQuery] WarehouseCreateUpdateInput input, [FromQuery] PageParModel page) + { + var result = await _warehouseService.PageListAsync(input, page); + return Result.Success().SetData(result); + } + + /// + /// 单查 + /// + /// + [HttpGet] + [Route("{id}")] + public async Task GetById(long id) + { + var result = await _warehouseService.GetByIdAsync(id); + return Result.Success().SetData(result); + } + + /// + /// 增 + /// + /// + /// + [HttpPost] + public async Task Create(WarehouseCreateUpdateInput input) + { + var result = await _warehouseService.CreateAsync(input); + return Result.Success().SetData(result); + } + + /// + /// 更 + /// + /// + /// + /// + [HttpPut] + [Route("{id}")] + public async Task Update(long id, WarehouseCreateUpdateInput input) + { + var result = await _warehouseService.UpdateAsync(id, input); + return Result.Success().SetData(result); + } + + /// + /// 删 + /// + /// + /// + [HttpDelete] + public async Task Del(List ids) + { + await _warehouseService.DeleteAsync(ids); + return Result.Success(); + } + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/yi-sqlsugar-dev.db b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/yi-sqlsugar-dev.db index 41e9f4b6..340aacc0 100644 Binary files a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/yi-sqlsugar-dev.db and b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/yi-sqlsugar-dev.db differ diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Enum/StateEnum.cs b/Yi.Framework.Net6/Yi.Framework.Common/Enum/StateEnum.cs new file mode 100644 index 00000000..3ef63873 --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.Common/Enum/StateEnum.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Yi.Framework.Common.Enum +{ + public enum StateEnum + { + Normal=0, + Disable=1 + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Material/ConstConfig/MaterialConst.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Material/ConstConfig/MaterialConst.cs new file mode 100644 index 00000000..2abffb7e --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Material/ConstConfig/MaterialConst.cs @@ -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.Material.ConstConfig +{ + public class MaterialConst + { + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Material/MapperConfig/MaterialProfile.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Material/MapperConfig/MaterialProfile.cs new file mode 100644 index 00000000..d4dd3b97 --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Material/MapperConfig/MaterialProfile.cs @@ -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.Material.MapperConfig +{ + public class SuppliERProfile:Profile + { + public SuppliERProfile() + { + CreateMap(); + CreateMap(); + + } + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Material/MaterialCreateUpdateInput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Material/MaterialCreateUpdateInput.cs new file mode 100644 index 00000000..372447b1 --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Material/MaterialCreateUpdateInput.cs @@ -0,0 +1,18 @@ +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.Material +{ + public class MaterialCreateUpdateInput : EntityDto + { + public string Code { get; set; } + public string Name { get; set; } + public string UnitName { get; set; } + public string Remarks { get; set; } + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Material/MaterialGetListOutput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Material/MaterialGetListOutput.cs new file mode 100644 index 00000000..71f5c573 --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Material/MaterialGetListOutput.cs @@ -0,0 +1,17 @@ +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.Material +{ + public class MaterialGetListOutput: EntityDto + { + public string Code { get; set; } + public string Name { get; set; } + public string UnitName { get; set; } + public string Remarks { get; set; } + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Unit/ConstConfig/UnitConst.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Unit/ConstConfig/UnitConst.cs new file mode 100644 index 00000000..f322d640 --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Unit/ConstConfig/UnitConst.cs @@ -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.Unit.ConstConfig +{ + public class UnitConst + { + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Unit/MapperConfig/UnitProfile.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Unit/MapperConfig/UnitProfile.cs new file mode 100644 index 00000000..d4c74ff8 --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Unit/MapperConfig/UnitProfile.cs @@ -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.Unit.MapperConfig +{ + public class SuppliERProfile:Profile + { + public SuppliERProfile() + { + CreateMap(); + CreateMap(); + + } + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Unit/UnitCreateUpdateInput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Unit/UnitCreateUpdateInput.cs new file mode 100644 index 00000000..c6f3452f --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Unit/UnitCreateUpdateInput.cs @@ -0,0 +1,17 @@ +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.Unit +{ + public class UnitCreateUpdateInput : EntityDto + { + public string Code { get; set; } + public string Name { get; set; } + public string Remarks { get; set; } + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Unit/UnitGetListOutput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Unit/UnitGetListOutput.cs new file mode 100644 index 00000000..ceef9916 --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Unit/UnitGetListOutput.cs @@ -0,0 +1,16 @@ +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.Unit +{ + public class UnitGetListOutput: EntityDto + { + public string Code { get; set; } + public string Name { get; set; } + public string Remarks { get; set; } + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Warehouse/ConstConfig/WarehouseConst.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Warehouse/ConstConfig/WarehouseConst.cs new file mode 100644 index 00000000..de97cf03 --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Warehouse/ConstConfig/WarehouseConst.cs @@ -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.Warehouse.ConstConfig +{ + public class WarehouseConst + { + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Warehouse/MapperConfig/WarehouseProfile.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Warehouse/MapperConfig/WarehouseProfile.cs new file mode 100644 index 00000000..c282a68e --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Warehouse/MapperConfig/WarehouseProfile.cs @@ -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.Warehouse.MapperConfig +{ + public class SuppliERProfile:Profile + { + public SuppliERProfile() + { + CreateMap(); + CreateMap(); + + } + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Warehouse/WarehouseCreateUpdateInput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Warehouse/WarehouseCreateUpdateInput.cs new file mode 100644 index 00000000..05bd02ea --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Warehouse/WarehouseCreateUpdateInput.cs @@ -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.Common.Enum; +using Yi.Framework.Model.Base; + +namespace Yi.Framework.DtoModel.ERP.Warehouse +{ + public class WarehouseCreateUpdateInput : EntityDto + { + public string Code { get; set; } + public string Name { get; set; } + public string Remarks { get; set; } + public StateEnum State { get; set; } + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Warehouse/WarehouseGetListOutput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Warehouse/WarehouseGetListOutput.cs new file mode 100644 index 00000000..57c2d626 --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Warehouse/WarehouseGetListOutput.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Yi.Framework.Common.Enum; +using Yi.Framework.Model.Base; + +namespace Yi.Framework.DtoModel.ERP.Warehouse +{ + public class WarehouseGetListOutput: EntityDto + { + public string Code { get; set; } + public string Name { get; set; } + public string Remarks { get; set; } + public StateEnum State { get; set; } + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IMaterialService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IMaterialService.cs new file mode 100644 index 00000000..db55544e --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IMaterialService.cs @@ -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.Material; +using Yi.Framework.Interface.Base.Crud; + +namespace Yi.Framework.Interface.ERP +{ + public interface IMaterialService : ICrudAppService + { + Task>> PageListAsync(MaterialCreateUpdateInput input, PageParModel page); + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IUnitService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IUnitService.cs new file mode 100644 index 00000000..5293cef4 --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IUnitService.cs @@ -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.Unit; +using Yi.Framework.Interface.Base.Crud; + +namespace Yi.Framework.Interface.ERP +{ + public interface IUnitService : ICrudAppService + { + Task>> PageListAsync(UnitCreateUpdateInput input, PageParModel page); + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IWarehouseService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IWarehouseService.cs new file mode 100644 index 00000000..95365e6b --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IWarehouseService.cs @@ -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.Warehouse; +using Yi.Framework.Interface.Base.Crud; + +namespace Yi.Framework.Interface.ERP +{ + public interface IWarehouseService : ICrudAppService + { + Task>> PageListAsync(WarehouseCreateUpdateInput input, PageParModel page); + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/MaterialEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/MaterialEntity.cs new file mode 100644 index 00000000..17c8bb78 --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/MaterialEntity.cs @@ -0,0 +1,50 @@ +using Newtonsoft.Json; +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.Model.ERP.Entitys +{ + /// + /// 物料定义 + /// + [SugarTable("Material")] + public class MaterialEntity : IEntity, IMultiTenant + { + /// + /// 主键 + /// + [JsonConverter(typeof(ValueToStringConverter))] + [SugarColumn(IsPrimaryKey = true)] + public long Id { get; set; } + + /// + /// 租户id + /// + public Guid? TenantId { get; set; } + + /// + /// 物料编码 + /// + public string Code { get; set; } + + /// + /// 物料名称 + /// + public string Name { get; set; } + + /// + /// 物料单位 + /// + public string UnitName { get; set; } + + /// + /// 备注 + /// + public string Remarks { get; set; } + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/PurchaseDetailsEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/PurchaseDetailsEntity.cs index 7be7da5d..fa3ab6ac 100644 --- a/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/PurchaseDetailsEntity.cs +++ b/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/PurchaseDetailsEntity.cs @@ -10,7 +10,7 @@ using Yi.Framework.Model.Base; namespace Yi.Framework.Model.ERP.Entitys { /// - /// 采购订单字表 + /// 采购订单子表 /// [SugarTable("PurchaseDetail")] public class PurchaseDetailsEntity : IEntity, IMultiTenant diff --git a/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/UnitEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/UnitEntity.cs new file mode 100644 index 00000000..3d9e65c7 --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/UnitEntity.cs @@ -0,0 +1,45 @@ +using Newtonsoft.Json; +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.Model.ERP.Entitys +{ + /// + /// 单位定义 + /// + [SugarTable("Unit")] + public class UnitEntity : IEntity, IMultiTenant + { + /// + /// 主键 + /// + [JsonConverter(typeof(ValueToStringConverter))] + [SugarColumn(IsPrimaryKey = true)] + public long Id { get; set; } + + /// + /// 租户id + /// + public Guid? TenantId { get; set; } + + /// + /// 单位编码 + /// + public string Code { get; set; } + + /// + /// 单位名称 + /// + public string Name { get; set; } + + /// + /// 备注 + /// + public string Remarks { get; set; } + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/WarehouseEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/WarehouseEntity.cs new file mode 100644 index 00000000..52abcf65 --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/WarehouseEntity.cs @@ -0,0 +1,51 @@ +using Newtonsoft.Json; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Yi.Framework.Common.Enum; +using Yi.Framework.Model.Base; + +namespace Yi.Framework.Model.ERP.Entitys +{ + /// + /// 仓库定义 + /// + [SugarTable("Warehouse")] + public class WarehouseEntity : IEntity, IMultiTenant + { + /// + /// 主键 + /// + [JsonConverter(typeof(ValueToStringConverter))] + [SugarColumn(IsPrimaryKey = true)] + public long Id { get; set; } + + /// + /// 租户id + /// + public Guid? TenantId { get; set; } + + /// + /// 仓库编码 + /// + public string Code { get; set; } + + /// + /// 仓库名称 + /// + public string Name { get; set; } + + /// + /// 备注 + /// + public string Remarks { get; set; } + + /// + /// 状态 + /// + public StateEnum State { get; set; } + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/ERP/MaterialService.cs b/Yi.Framework.Net6/Yi.Framework.Service/ERP/MaterialService.cs new file mode 100644 index 00000000..a677be40 --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.Service/ERP/MaterialService.cs @@ -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.Material; +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 MaterialService : CrudAppService, IMaterialService + { + public MaterialService(IRepository repository, IMapper mapper) : base(repository, mapper) + { + } + public async Task>> PageListAsync(MaterialCreateUpdateInput input, PageParModel page) + { + RefAsync 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> { Total = totalNumber.Value, Data = await MapToGetListOutputDtosAsync(data) }; + } + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/ERP/UnitService.cs b/Yi.Framework.Net6/Yi.Framework.Service/ERP/UnitService.cs new file mode 100644 index 00000000..bb850287 --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.Service/ERP/UnitService.cs @@ -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.Unit; +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 UnitService : CrudAppService, IUnitService + { + public UnitService(IRepository repository, IMapper mapper) : base(repository, mapper) + { + } + public async Task>> PageListAsync(UnitCreateUpdateInput input, PageParModel page) + { + RefAsync 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> { Total = totalNumber.Value, Data = await MapToGetListOutputDtosAsync(data) }; + } + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/ERP/WarehouseService.cs b/Yi.Framework.Net6/Yi.Framework.Service/ERP/WarehouseService.cs new file mode 100644 index 00000000..7159a201 --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.Service/ERP/WarehouseService.cs @@ -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.Warehouse; +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 WarehouseService : CrudAppService, IWarehouseService + { + public WarehouseService(IRepository repository, IMapper mapper) : base(repository, mapper) + { + } + public async Task>> PageListAsync(WarehouseCreateUpdateInput input, PageParModel page) + { + RefAsync 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> { Total = totalNumber.Value, Data = await MapToGetListOutputDtosAsync(data) }; + } + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Program.cs b/Yi.Framework.Net6/Yi.Framework.Template/Program.cs index 0961099d..f4580ffc 100644 --- a/Yi.Framework.Net6/Yi.Framework.Template/Program.cs +++ b/Yi.Framework.Net6/Yi.Framework.Template/Program.cs @@ -7,7 +7,7 @@ TemplateFactory templateFactory = new(); //选择需要生成的模板提供者 string modelName = "ERP"; -List entityNames =new (){ "Supplier", "Purchase", "PurchaseDetails" }; +List entityNames =new (){ "_" }; foreach (var entityName in entityNames) { diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ConstTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ConstTemplateProvider.cs index 8cbed5bd..93a8a74e 100644 --- a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ConstTemplateProvider.cs +++ b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ConstTemplateProvider.cs @@ -12,7 +12,7 @@ namespace Yi.Framework.Template.Provider.Server { public ConstTemplateProvider(string modelName, string entityName) : base(modelName, entityName) { - BuildPath = $@"..\..\..\Code_Server\Yi.Framework.DtoModel\{TemplateConst.ModelName}\{TemplateConst.EntityName}\ConstConfig\{TemplateConst.EntityName}Const.cs"; + BuildPath = $@"..\..\..\..\Yi.Framework.DtoModel\{TemplateConst.ModelName}\{TemplateConst.EntityName}\ConstConfig\{TemplateConst.EntityName}Const.cs"; TemplatePath = $@"..\..\..\Template\Server\ConstTemplate.txt"; } } diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ControllerTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ControllerTemplateProvider.cs index 1ed12e25..60612b5d 100644 --- a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ControllerTemplateProvider.cs +++ b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ControllerTemplateProvider.cs @@ -12,7 +12,7 @@ namespace Yi.Framework.Template.Provider.Server { public ControllerTemplateProvider(string modelName, string entityName) : base(modelName, entityName) { - BuildPath = $@"..\..\..\Code_Server\Yi.Framework.ApiMicroservice\Controllers\{TemplateConst.ModelName}\{TemplateConst.EntityName}Controller.cs"; + BuildPath = $@"..\..\..\..\Yi.Framework.ApiMicroservice\Controllers\{TemplateConst.ModelName}\{TemplateConst.EntityName}Controller.cs"; TemplatePath = $@"..\..\..\Template\Server\ControllerTemplate.txt"; } } diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/CreateUpdateInputTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/CreateUpdateInputTemplateProvider.cs index b808d7ef..a79165fa 100644 --- a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/CreateUpdateInputTemplateProvider.cs +++ b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/CreateUpdateInputTemplateProvider.cs @@ -12,7 +12,7 @@ namespace Yi.Framework.Template.Provider.Server { public CreateUpdateInputTemplateProvider(string modelName, string entityName) : base(modelName, entityName) { - BuildPath = $@"..\..\..\Code_Server\Yi.Framework.DtoModel\{TemplateConst.ModelName}\{TemplateConst.EntityName}\{TemplateConst.EntityName}CreateUpdateInput.cs"; + BuildPath = $@"..\..\..\..\Yi.Framework.DtoModel\{TemplateConst.ModelName}\{TemplateConst.EntityName}\{TemplateConst.EntityName}CreateUpdateInput.cs"; TemplatePath = $@"..\..\..\Template\Server\CreateUpdateInputTemplate.txt"; EntityPath = $@"..\..\..\..\Yi.Framework.Model\{TemplateConst.ModelName}\Entitys\{TemplateConst.EntityName}Entity.cs"; } diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/GetListOutputTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/GetListOutputTemplateProvider.cs index fa6df140..3ad40150 100644 --- a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/GetListOutputTemplateProvider.cs +++ b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/GetListOutputTemplateProvider.cs @@ -12,7 +12,7 @@ namespace Yi.Framework.Template.Provider.Server { public GetListOutputTemplateProvider(string modelName, string entityName) : base(modelName, entityName) { - BuildPath = $@"..\..\..\Code_Server\Yi.Framework.DtoModel\{TemplateConst.ModelName}\{TemplateConst.EntityName}\{TemplateConst.EntityName}GetListOutput.cs"; + BuildPath = $@"..\..\..\..\Yi.Framework.DtoModel\{TemplateConst.ModelName}\{TemplateConst.EntityName}\{TemplateConst.EntityName}GetListOutput.cs"; TemplatePath = $@"..\..\..\Template\Server\GetListOutputTemplate.txt"; EntityPath = $@"..\..\..\..\Yi.Framework.Model\{TemplateConst.ModelName}\Entitys\{TemplateConst.EntityName}Entity.cs"; } diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/IServceTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/IServceTemplateProvider.cs index fa53c8c6..8aad323a 100644 --- a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/IServceTemplateProvider.cs +++ b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/IServceTemplateProvider.cs @@ -12,7 +12,7 @@ namespace Yi.Framework.Template.Provider.Server { public IServceTemplateProvider(string modelName, string entityName) : base(modelName, entityName) { - BuildPath = $@"..\..\..\Code_Server\Yi.Framework.Interface\{TemplateConst.ModelName}\I{TemplateConst.EntityName}Service.cs"; + BuildPath = $@"..\..\..\..\Yi.Framework.Interface\{TemplateConst.ModelName}\I{TemplateConst.EntityName}Service.cs"; TemplatePath = $@"..\..\..\Template\Server\IServiceTemplate.txt"; } } diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ProfileTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ProfileTemplateProvider.cs index 5211c537..d72f3ba4 100644 --- a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ProfileTemplateProvider.cs +++ b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ProfileTemplateProvider.cs @@ -12,7 +12,7 @@ namespace Yi.Framework.Template.Provider.Server { public ProfileTemplateProvider(string modelName, string entityName) : base(modelName, entityName) { - BuildPath = $@"..\..\..\Code_Server\Yi.Framework.DtoModel\{TemplateConst.ModelName}\{TemplateConst.EntityName}\MapperConfig\{TemplateConst.EntityName}Profile.cs"; + BuildPath = $@"..\..\..\..\Yi.Framework.DtoModel\{TemplateConst.ModelName}\{TemplateConst.EntityName}\MapperConfig\{TemplateConst.EntityName}Profile.cs"; TemplatePath = $@"..\..\..\Template\Server\ProfileTemplate.txt"; } } diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ServceTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ServceTemplateProvider.cs index 79a0695b..9322e2b2 100644 --- a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ServceTemplateProvider.cs +++ b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ServceTemplateProvider.cs @@ -12,7 +12,7 @@ namespace Yi.Framework.Template.Provider.Server { public ServceTemplateProvider(string modelName, string entityName) : base(modelName, entityName) { - BuildPath = $@"..\..\..\Code_Server\Yi.Framework.Service\{TemplateConst.ModelName}\{TemplateConst.EntityName}Service.cs"; + BuildPath = $@"..\..\..\..\Yi.Framework.Service\{TemplateConst.ModelName}\{TemplateConst.EntityName}Service.cs"; TemplatePath = $@"..\..\..\Template\Server\ServiceTemplate.txt"; } } diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Site/ApiTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Site/ApiTemplateProvider.cs index 8f3afb2e..0d02135a 100644 --- a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Site/ApiTemplateProvider.cs +++ b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Site/ApiTemplateProvider.cs @@ -12,7 +12,7 @@ namespace Yi.Framework.Template.Provider.Site { public ApiTemplateProvider(string modelName, string entityName) : base(modelName, entityName) { - BuildPath = $@"..\..\..\Code_Site\src\api\{TemplateConst.ModelName}\{TemplateConst.LowerEntityName}Api.js"; + BuildPath = $@"..\..\..\Code_Site\src\api\{TemplateConst.LowerModelName}\{TemplateConst.LowerEntityName}Api.js"; TemplatePath = $@"..\..\..\Template\Site\ApiTemplate.txt"; } } diff --git a/Yi.Vue3.x.RuoYi/src/api/erp/materialApi.js b/Yi.Vue3.x.RuoYi/src/api/erp/materialApi.js new file mode 100644 index 00000000..80f472e1 --- /dev/null +++ b/Yi.Vue3.x.RuoYi/src/api/erp/materialApi.js @@ -0,0 +1,45 @@ +import request from '@/utils/request' + +// 分页查询 +export function listData(query) { + return request({ + url: '/material/pageList', + method: 'get', + params: query + }) +} + +// id查询 +export function getData(code) { + return request({ + url: '/material/getById/' + code, + method: 'get' + }) +} + +// 新增 +export function addData(data) { + return request({ + url: '/material/create', + method: 'post', + data: data + }) +} + +// 修改 +export function updateData(id,data) { + return request({ + url: `/material/update/${id}`, + method: 'put', + data: data + }) +} + +// 删除 +export function delData(code) { + return request({ + url: '/material/del', + method: 'delete', + data:"string"==typeof(code)?[code]:code + }) +} diff --git a/Yi.Vue3.x.RuoYi/src/api/erp/unitApi.js b/Yi.Vue3.x.RuoYi/src/api/erp/unitApi.js new file mode 100644 index 00000000..f0d14c0f --- /dev/null +++ b/Yi.Vue3.x.RuoYi/src/api/erp/unitApi.js @@ -0,0 +1,45 @@ +import request from '@/utils/request' + +// 分页查询 +export function listData(query) { + return request({ + url: '/unit/pageList', + method: 'get', + params: query + }) +} + +// id查询 +export function getData(code) { + return request({ + url: '/unit/getById/' + code, + method: 'get' + }) +} + +// 新增 +export function addData(data) { + return request({ + url: '/unit/create', + method: 'post', + data: data + }) +} + +// 修改 +export function updateData(id,data) { + return request({ + url: `/unit/update/${id}`, + method: 'put', + data: data + }) +} + +// 删除 +export function delData(code) { + return request({ + url: '/unit/del', + method: 'delete', + data:"string"==typeof(code)?[code]:code + }) +} diff --git a/Yi.Vue3.x.RuoYi/src/api/erp/warehouseApi.js b/Yi.Vue3.x.RuoYi/src/api/erp/warehouseApi.js new file mode 100644 index 00000000..e9f91df4 --- /dev/null +++ b/Yi.Vue3.x.RuoYi/src/api/erp/warehouseApi.js @@ -0,0 +1,45 @@ +import request from '@/utils/request' + +// 分页查询 +export function listData(query) { + return request({ + url: '/warehouse/pageList', + method: 'get', + params: query + }) +} + +// id查询 +export function getData(code) { + return request({ + url: '/warehouse/getById/' + code, + method: 'get' + }) +} + +// 新增 +export function addData(data) { + return request({ + url: '/warehouse/create', + method: 'post', + data: data + }) +} + +// 修改 +export function updateData(id,data) { + return request({ + url: `/warehouse/update/${id}`, + method: 'put', + data: data + }) +} + +// 删除 +export function delData(code) { + return request({ + url: '/warehouse/del', + method: 'delete', + data:"string"==typeof(code)?[code]:code + }) +} diff --git a/Yi.Vue3.x.RuoYi/src/views/ERP/material/index.vue b/Yi.Vue3.x.RuoYi/src/views/ERP/material/index.vue new file mode 100644 index 00000000..dc2d6c31 --- /dev/null +++ b/Yi.Vue3.x.RuoYi/src/views/ERP/material/index.vue @@ -0,0 +1,377 @@ + + + \ No newline at end of file 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 853ced64..af45af98 100644 --- a/Yi.Vue3.x.RuoYi/src/views/ERP/supplier/index.vue +++ b/Yi.Vue3.x.RuoYi/src/views/ERP/supplier/index.vue @@ -8,7 +8,7 @@ v-show="showSearch" label-width="100px" > - + - + + +
+ + + + + + + + + + + 搜索 + 重置 + + + + + + 新增 + + + 修改 + + + 删除 + + + 导出 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + \ No newline at end of file diff --git a/Yi.Vue3.x.RuoYi/src/views/ERP/warehouse/index.vue b/Yi.Vue3.x.RuoYi/src/views/ERP/warehouse/index.vue new file mode 100644 index 00000000..90d2d062 --- /dev/null +++ b/Yi.Vue3.x.RuoYi/src/views/ERP/warehouse/index.vue @@ -0,0 +1,368 @@ + + + \ No newline at end of file