| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 | using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using wms.sqlsugar.model.cp;using WMS.BZModels;using WMS.BZSqlSugar;using WMS.Info;using SqlSugar;using WMS.Util;using WMS.BZModels.Dto.CP.BillInvDtos;using NPOI.SS.Formula.PTG;using WMS.BZModels.Dto.CP.TaskDtos;using WMS.BZModels.Dto;using Mapster;namespace WMS.BZServices.CP{    public class WCSTaskOldService    {        private readonly Repository<WCS_TaskOld> _wcstaskoldrepository;        public WCSTaskOldService(Repository<WCS_TaskOld> wcstaskoldrepository)        {            _wcstaskoldrepository = wcstaskoldrepository;        }        public PagedInfo<WCSTaskoldDto> GetPageList(Pagination pagination, WCSTaskoldQueryDto WCSTaskoldQueryDto)        {            ISugarQueryable<WCS_TaskOld> query = GetQueryable(WCSTaskoldQueryDto);            var list = query.ToPage<WCS_TaskOld, WCSTaskoldDto>(pagination);            return list;        }        private ISugarQueryable<WCS_TaskOld> GetQueryable(WCSTaskoldQueryDto WCSTaskoldQueryDto)        {            var predicate = Expressionable.Create<WCS_TaskOld>();            predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.ID), m => m.ID.ToString().Contains(WCSTaskoldQueryDto.ID));            predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.KeyWord), m => m.ID.ToString().Contains(WCSTaskoldQueryDto.KeyWord) || m.BarCode.Contains(WCSTaskoldQueryDto.KeyWord) || m.MaterialCode.Contains(WCSTaskoldQueryDto.KeyWord)            || m.InvBarCode.Contains(WCSTaskoldQueryDto.KeyWord) || m.AddrFrom.Contains(WCSTaskoldQueryDto.KeyWord) || m.AddrTo.Contains(WCSTaskoldQueryDto.KeyWord) ||            m.Floor.ToString() == WCSTaskoldQueryDto.KeyWord || m.Tunnel.Contains(WCSTaskoldQueryDto.KeyWord) || m.Device.Contains(WCSTaskoldQueryDto.KeyWord));            predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.BarCode), m => m.BarCode.Contains(WCSTaskoldQueryDto.BarCode));            predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.MaterialCode), m => m.MaterialCode.Contains(WCSTaskoldQueryDto.MaterialCode));            predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.AddrFrom), m => m.AddrFrom.Contains(WCSTaskoldQueryDto.AddrFrom));            predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.AddrTo), m => m.AddrTo.Contains(WCSTaskoldQueryDto.AddrTo));            predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.AddrNext), m => m.AddrNext.Contains(WCSTaskoldQueryDto.AddrNext));            predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.Type), m => ((int)m.Type).Equals(WCSTaskoldQueryDto.Type));            predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.Status), m => ((int)m.Status).Equals(WCSTaskoldQueryDto.Status));            predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.BusType), m => m.BusType.Equals(WCSTaskoldQueryDto.BusType));            predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.Tunnel), m => m.Tunnel.Contains(WCSTaskoldQueryDto.Tunnel));            predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.Device), m => m.Device.Contains(WCSTaskoldQueryDto.Device));            predicate = predicate.AndIF(WCSTaskoldQueryDto != null && WCSTaskoldQueryDto.AddTimeFrom.HasValue, m => m.AddTime >= WCSTaskoldQueryDto.AddTimeFrom);            predicate = predicate.AndIF(WCSTaskoldQueryDto != null && WCSTaskoldQueryDto.AddTimeTo.HasValue, m => m.AddTime <= WCSTaskoldQueryDto.AddTimeTo);            predicate = predicate.AndIF(WCSTaskoldQueryDto != null && WCSTaskoldQueryDto.StartTimeBegin.HasValue, m => m.StartTime >= WCSTaskoldQueryDto.StartTimeBegin);            predicate = predicate.AndIF(WCSTaskoldQueryDto != null && WCSTaskoldQueryDto.StartTimeEnd.HasValue, m => m.StartTime <= WCSTaskoldQueryDto.StartTimeEnd);            predicate = predicate.AndIF(WCSTaskoldQueryDto != null && WCSTaskoldQueryDto.EndTimeBegin.HasValue, m => m.EndTime >= WCSTaskoldQueryDto.EndTimeBegin);            predicate = predicate.AndIF(WCSTaskoldQueryDto != null && WCSTaskoldQueryDto.EndTimeEnd.HasValue, m => m.EndTime <= WCSTaskoldQueryDto.EndTimeEnd);            predicate = predicate.AndIF(WCSTaskoldQueryDto != null && WCSTaskoldQueryDto.OutType.HasValue, m => m.OutType.Equals(WCSTaskoldQueryDto.OutType));            predicate = predicate.AndIF(!string.IsNullOrEmpty(WCSTaskoldQueryDto?.TaskGroupKey), m => m.TaskGroupKey.Contains(WCSTaskoldQueryDto.TaskGroupKey));            var query = _wcstaskoldrepository.Queryable().With(SqlWith.NoLock).Where(predicate.ToExpression()).SplitTable(p => p.Take(3));            if (WCSTaskoldQueryDto != null && WCSTaskoldQueryDto.AddTimeFrom.HasValue)            {                var endtime = DateTime.Now;                if (WCSTaskoldQueryDto.AddTimeTo.HasValue)                {                    endtime = WCSTaskoldQueryDto.AddTimeTo.Value;                }                query = _wcstaskoldrepository.Queryable().With(SqlWith.NoLock).Where(predicate.ToExpression()).SplitTable(WCSTaskoldQueryDto.AddTimeFrom.Value, endtime);            }            return query;        }        public IList<WCSTaskoldDto> GetList(WCSTaskoldQueryDto WCSTaskoldQueryDto)        {            ISugarQueryable<WCS_TaskOld> sugarQueryable = GetQueryable(WCSTaskoldQueryDto);            var list = sugarQueryable.ToList();            return list.Adapt<List<WCSTaskoldDto>>();        }        public int GetTaskUnFinishCount()        {            var predicate = Expressionable.Create<WCS_TaskOld>();            predicate = predicate.And(m => m.Status < (int)BZModels.TaskStatus.Finish);            var count = _wcstaskoldrepository.Queryable().With(SqlWith.NoLock).Where(predicate.ToExpression()).SplitTable(tabs => tabs.Take(3)).Count();            return count;        }            }}
 |