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 = "ShiftInfo", Order = 100)] [Route("api/[Controller]")] public class ShiftInfoService : IShiftInfoService, IDynamicApiController, ITransient { private readonly IRepository _shiftInfoRep; public ShiftInfoService( IRepository shiftInfoRep ) { _shiftInfoRep = shiftInfoRep; } /// /// 分页查询班组信息 /// /// /// [HttpGet("page")] public async Task> Page([FromQuery] ShiftInfoSearch input) { var shiftInfos = await _shiftInfoRep.DetachedEntities //.Where(!string.IsNullOrEmpty(input.ShiftName), u => u.ShiftName == input.ShiftName) //.Where(!string.IsNullOrEmpty(input.ShiftStartTime), u => u.ShiftStartTime == input.ShiftStartTime) //.Where(!string.IsNullOrEmpty(input.ShiftEndTime), u => u.ShiftEndTime == input.ShiftEndTime) //.Where(input.IsNextDay != null, u => u.IsNextDay == input.IsNextDay) //.Where(!string.IsNullOrEmpty(input.ShiftRemark), u => u.ShiftRemark == input.ShiftRemark) .OrderBy(PageInputOrder.OrderBuilder(input)) .ProjectToType() .ToADPagedListAsync(input.PageNo, input.PageSize); return shiftInfos; } /// /// 增加班组信息 /// /// /// [HttpPost("add")] public async Task Add(AddShiftInfoInput input) { ShiftInfo shiftInfo = await _shiftInfoRep.FirstOrDefaultAsync(x => x.ShiftName == input.ShiftName && x.IsDeleted == false); if (shiftInfo != null) { throw Oops.Oh("班次名称已存在"); } var shiftInfo2 = input.Adapt(); await _shiftInfoRep.InsertAsync(shiftInfo2); } /// /// 删除班组信息 /// /// /// [HttpPost("delete")] public async Task Delete(DeleteShiftInfoInput input) { var shiftInfo = await _shiftInfoRep.FirstOrDefaultAsync(u => u.Id == input.Id); await _shiftInfoRep.DeleteAsync(shiftInfo); } /// /// 更新班组信息 /// /// /// [HttpPost("edit")] public async Task Update(UpdateShiftInfoInput input) { var isExist = await _shiftInfoRep.AnyAsync(u => u.Id == input.Id, false); if (!isExist) throw Oops.Oh(ErrorCode.D3000); var shiftInfo = input.Adapt(); await _shiftInfoRep.UpdateAsync(shiftInfo,ignoreNullValues:true); } /// /// 获取班组信息 /// /// /// [HttpGet("detail")] public async Task Get([FromQuery] QueryeShiftInfoInput input) { return (await _shiftInfoRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == input.Id)).Adapt(); } /// /// 获取班组信息列表 /// /// /// [HttpGet("list")] public async Task> List([FromQuery] ShiftInfoInput input) { return await _shiftInfoRep.DetachedEntities.ProjectToType().ToListAsync(); } } }