using Furion.DatabaseAccessor; using Furion.DatabaseAccessor.Extensions; using Furion.DependencyInjection; using Furion.DynamicApiController; using Furion.FriendlyException; using iWare.Wms.Core; using Mapster; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using System.Linq.Dynamic.Core; namespace iWare.Wms.Application { /// /// 数据收集点对应字段服务 /// [ApiDescriptionSettings("自己的业务", Name = "DataCaptureColumnConfig", Order = 100)] [Route("api/[Controller]")] public class DataCaptureColumnConfigService : IDataCaptureColumnConfigService, IDynamicApiController, ITransient { private readonly IRepository _dataCaptureColumnConfigRep; public DataCaptureColumnConfigService( IRepository dataCaptureColumnConfigRep ) { _dataCaptureColumnConfigRep = dataCaptureColumnConfigRep; } /// /// 分页查询数据收集点对应字段 /// /// /// [HttpGet("page")] public async Task> Page([FromQuery] DataCaptureColumnConfigSearch input) { var dataCaptureColumnConfigs = await _dataCaptureColumnConfigRep.DetachedEntities .Where(!string.IsNullOrEmpty(input.WorkingProcedure), u => u.WorkingProcedure == input.WorkingProcedure) .Where(!string.IsNullOrEmpty(input.DataCapturePointCode), u => u.DataCapturePointCode == input.DataCapturePointCode) .Where(!string.IsNullOrEmpty(input.DataCapturePointCname), u => u.DataCapturePointCname == input.DataCapturePointCname) .Where(input.DataCaptureType != null, u => u.DataCaptureType == input.DataCaptureType) .Where(!string.IsNullOrEmpty(input.DbNumber), u => u.DbNumber == input.DbNumber) .Where(!string.IsNullOrEmpty(input.Offset), u => u.Offset == input.Offset) .Where(input.DataCaptureColumnLength != null, u => u.DataCaptureColumnLength == input.DataCaptureColumnLength) .Where(!string.IsNullOrEmpty(input.DataCaptureColumnType), u => u.DataCaptureColumnType == input.DataCaptureColumnType) .Where(!string.IsNullOrEmpty(input.DataCaptureColumnTabelName), u => u.DataCaptureColumnTabelName == input.DataCaptureColumnTabelName) .Where(input.IsFeedback != null, u => u.IsFeedback == input.IsFeedback) .OrderBy(PageInputOrder.OrderBuilder(input)) .ProjectToType() .ToADPagedListAsync(input.PageNo, input.PageSize); return dataCaptureColumnConfigs; } /// /// 增加数据收集点对应字段 /// /// /// [HttpPost("add")] public async Task Add(AddDataCaptureColumnConfigInput input) { var dataCaptureColumnConfig = input.Adapt(); await _dataCaptureColumnConfigRep.InsertAsync(dataCaptureColumnConfig); } /// /// 删除数据收集点对应字段 /// /// /// [HttpPost("delete")] public async Task Delete(DeleteDataCaptureColumnConfigInput input) { var dataCaptureColumnConfig = await _dataCaptureColumnConfigRep.FirstOrDefaultAsync(u => u.Id == input.Id); await _dataCaptureColumnConfigRep.DeleteAsync(dataCaptureColumnConfig); } /// /// 更新数据收集点对应字段 /// /// /// [HttpPost("edit")] public async Task Update(UpdateDataCaptureColumnConfigInput input) { var isExist = await _dataCaptureColumnConfigRep.AnyAsync(u => u.Id == input.Id, false); if (!isExist) throw Oops.Oh(ErrorCode.D3000); var dataCaptureColumnConfig = input.Adapt(); await _dataCaptureColumnConfigRep.UpdateAsync(dataCaptureColumnConfig,ignoreNullValues:true); } /// /// 获取数据收集点对应字段 /// /// /// [HttpGet("detail")] public async Task Get([FromQuery] QueryeDataCaptureColumnConfigInput input) { return (await _dataCaptureColumnConfigRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == input.Id)).Adapt(); } /// /// 获取数据收集点对应字段列表 /// /// /// [HttpGet("list")] public async Task> List([FromQuery] DataCaptureColumnConfigInput input) { return await _dataCaptureColumnConfigRep.DetachedEntities.ProjectToType().ToListAsync(); } } }