using Furion.DatabaseAccessor; using Furion.DependencyInjection; using Furion.DynamicApiController; using Mapster; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using System.Linq.Dynamic.Core; using Admin.NET.Core; using Admin.NET.Core.Entity; namespace Admin.NET.Application { /// /// 出入库记录服务 /// [ApiDescriptionSettings("仓库作业", Name = "View_AccessDetails", Order = 105)] [Route("api/[Controller]")] public class AccessDetailsService : IDynamicApiController, ITransient { private readonly IRepository _vAccessDetailsRep; /// /// 构造函数 /// /// public AccessDetailsService( IRepository vAccessDetailsRep ) { _vAccessDetailsRep = vAccessDetailsRep; } /// /// 分页查询出入库记录 /// /// /// [HttpGet("page")] public async Task> Page([FromQuery] View_AccessDetailsSearch input) { var view_AccessDetailss = await _vAccessDetailsRep.DetachedEntities .Where(!string.IsNullOrEmpty(input.TaskNo), u => EF.Functions.Like(u.TaskNo, $"%{input.TaskNo.Trim()}%")) .Where(input.TaskModel != null, u => u.TaskModel == input.TaskModel) .Where(input.TaskType != null, u => u.TaskType == input.TaskType) .Where(u => u.TaskStatus == TaskStatusEnum.WANCHENG || u.TaskStatus == TaskStatusEnum.ZHIXINGZHONG) .Where(u => u.TaskNo != null) .Where(!string.IsNullOrEmpty(input.SourcePlace), u => EF.Functions.Like(u.SourcePlace, $"%{input.SourcePlace.Trim()}%")) .Where(!string.IsNullOrEmpty(input.ToPlace), u => EF.Functions.Like(u.ToPlace, $"%{input.ToPlace.Trim()}%")) .Where(!string.IsNullOrEmpty(input.MaterialNo), u => EF.Functions.Like(u.MaterialNo, $"%{input.MaterialNo.Trim()}%")) .Where(input.SearchBeginTime != null && input.SearchEndTime != null, u => u.CreatedTime >= DateTime.Parse(input.SearchBeginTime.Trim()) && u.CreatedTime <= DateTime.Parse(input.SearchEndTime.Trim())) .OrderBy(PageInputOrder.OrderBuilder(input)) .ProjectToType() .ToADPagedListAsync(input.PageNo, input.PageSize); return view_AccessDetailss; } } }