123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- using SqlSugar;
- 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.Info;
- using WMS.BZSqlSugar;
- using NPOI.SS.Formula.Functions;
- using WMS.BZModels.Dto.CP.TaskDtos;
- using System.Collections;
- namespace WMS.BZServices.CP
- {
- public class TaskInfoService
- {
- private readonly Repository<WCSTaskinfo> _wcstaskinforepository;
- private readonly Repository<WCS_TaskOld> _wcstaskoldrepository;
- public TaskInfoService(Repository<WCSTaskinfo> wcstaskinforepository, Repository<WCS_TaskOld> wcstaskoldrepository)
- {
- _wcstaskinforepository = wcstaskinforepository;
- _wcstaskoldrepository = wcstaskoldrepository;
- }
- public PagedInfo<WCSTaskinfoDto> GetPageList(Pagination pagination, WCSTaskinfoQueryDto wCSTaskinfoQueryDto)
- {
- var predicate = Expressionable.Create<WCSTaskinfo>();
- predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.ID), m => m.ID.ToString().Contains(wCSTaskinfoQueryDto.ID));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.KeyWord), m => m.ID.ToString().Contains(wCSTaskinfoQueryDto.KeyWord) || m.BarCode.Contains(wCSTaskinfoQueryDto.KeyWord) || m.AddrTo.Contains(wCSTaskinfoQueryDto.KeyWord) || m.AddrFrom.Contains(wCSTaskinfoQueryDto.KeyWord)
- || m.Floor.ToString() == wCSTaskinfoQueryDto.KeyWord || m.Tunnel.Contains(wCSTaskinfoQueryDto.KeyWord) || m.Device.Contains(wCSTaskinfoQueryDto.KeyWord) || m.MaterialCode.Contains(wCSTaskinfoQueryDto.KeyWord));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.BarCode), m => m.BarCode.Contains(wCSTaskinfoQueryDto.BarCode));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.MaterialCode), m => m.MaterialCode.Contains(wCSTaskinfoQueryDto.MaterialCode));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.AddrFrom), m => m.AddrFrom.Contains(wCSTaskinfoQueryDto.AddrFrom));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.AddrTo), m => m.AddrTo.Contains(wCSTaskinfoQueryDto.AddrTo));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.AddrNext), m => m.AddrNext.Contains(wCSTaskinfoQueryDto.AddrNext));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.Type), m => m.Type.Equals(wCSTaskinfoQueryDto.Type));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.Status), m => m.Status.Equals(wCSTaskinfoQueryDto.Status));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.BusType), m => m.BusType.Equals(wCSTaskinfoQueryDto.BusType));
- predicate = predicate.AndIF(wCSTaskinfoQueryDto != null && wCSTaskinfoQueryDto.AddTimeFrom.HasValue, m => m.AddTime >= wCSTaskinfoQueryDto.AddTimeFrom);
- predicate = predicate.AndIF(wCSTaskinfoQueryDto != null && wCSTaskinfoQueryDto.AddTimeTo.HasValue, m => m.AddTime <= wCSTaskinfoQueryDto.AddTimeTo);
- predicate = predicate.AndIF(wCSTaskinfoQueryDto != null && wCSTaskinfoQueryDto.StartTimeBegin.HasValue, m => m.StartTime >= wCSTaskinfoQueryDto.StartTimeBegin);
- predicate = predicate.AndIF(wCSTaskinfoQueryDto != null && wCSTaskinfoQueryDto.StartTimeEnd.HasValue, m => m.StartTime <= wCSTaskinfoQueryDto.StartTimeEnd);
- predicate = predicate.AndIF(wCSTaskinfoQueryDto != null && wCSTaskinfoQueryDto.EndTimeBegin.HasValue, m => m.EedTime >= wCSTaskinfoQueryDto.EndTimeBegin);
- predicate = predicate.AndIF(wCSTaskinfoQueryDto != null && wCSTaskinfoQueryDto.EndTimeEnd.HasValue, m => m.EedTime <= wCSTaskinfoQueryDto.EndTimeEnd);
- predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.Tunnel), m => m.Tunnel.Contains(wCSTaskinfoQueryDto.Tunnel));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.Device), m => m.Device.Contains(wCSTaskinfoQueryDto.Device));
- predicate = predicate.AndIF(wCSTaskinfoQueryDto != null && wCSTaskinfoQueryDto.OutType.HasValue, m => m.OutType.Equals(wCSTaskinfoQueryDto.OutType));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.TaskGroupKey), m => m.TaskGroupKey.Contains(wCSTaskinfoQueryDto.TaskGroupKey));
- var list = _wcstaskinforepository.Queryable().Where(predicate.ToExpression())
- .ToPage<WCSTaskinfo, WCSTaskinfoDto>(pagination);
- return list;
- }
- public void Priority(TaskPriorityDto dto)
- {
- if (dto == null) throw new ArgumentException("数据不能为空!");
- if (!dto.TaskIds.Any())
- {
- throw new ArgumentException("没有数据!");
- }
- var lists = _wcstaskinforepository.Queryable().With(SqlWith.NoLock).Where(o => dto.TaskIds.Contains(o.ID.ToString())).ToList();
- if (!lists.Any())
- {
- throw new ArgumentException("没有任务数据!");
- }
-
- _wcstaskinforepository.UseTranAction(() =>
- {
- foreach (var item in lists)
- {
- _wcstaskinforepository.AsUpdateable().With("WITH(ROWLOCK,UPDLOCK)").SetColumns(p => new WCSTaskinfo()
- {
- Priority = Convert.ToInt32(dto.Priority),
- ManualRemarks = dto.ManualRemarks,
- EditWho = dto.User,
- EditTime = DateTime.Now,
- }).Where(p => p.ID == item.ID).ExecuteCommand();
- }
- });
- }
- public void ReScanCode(TaskPriorityDto dto)
- {
- if (dto == null) throw new ArgumentException("数据不能为空!");
- if (!dto.TaskIds.Any())
- {
- throw new ArgumentException("没有数据!");
- }
- var lists = _wcstaskinforepository.Queryable().With(SqlWith.NoLock).Where(o => dto.TaskIds.Contains(o.ID.ToString())).ToList();
- if (!lists.Any())
- {
- throw new ArgumentException("没有任务数据!");
- }
- var oldlists = _wcstaskoldrepository.Queryable().With(SqlWith.NoLock).SplitTable(tabs => tabs.Take(3)).Where(o => dto.TaskIds.Contains(o.ID.ToString())).ToList();
- _wcstaskinforepository.UseTranAction(() =>
- {
- foreach (var item in lists)
- {
- _wcstaskinforepository.AsUpdateable().With("WITH(ROWLOCK,UPDLOCK)").SetColumns(p => new WCSTaskinfo()
- {
- BarCode = "",
- AddrNext = "8058",
- EditWho = dto.User,
- EditTime = DateTime.Now,
- }).Where(p => p.ID == item.ID).ExecuteCommand();
- }
- foreach (var olditem in oldlists)
- {
- _wcstaskoldrepository.AsUpdateable().With("WITH(ROWLOCK,UPDLOCK)").SetColumns(p => new WCS_TaskOld()
- {
- BarCode = "",
- AddrNext = "8058",
- EditWho = dto.User,
- EditTime = DateTime.Now,
- }).Where(p => p.ID == olditem.ID).SplitTable(p => p.Take(3)).ExecuteCommand();
- }
- });
- }
- }
- }
|