using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WMS.BZModels.Dto.SX.TaskDtos; using WMS.BZModels; using WMS.Info; using wms.sqlsugar.model.sx; using WMS.BZSqlSugar; using WMS.BZModels.Dto.SX.SysConDtos; using WMS.Util; using Org.BouncyCastle.Crypto; namespace WMS.BZServices.SX { public class SysConService { private readonly Repository _sysconrepository; private readonly Repository _CPsysConfigRepository; public SysConService(Repository sysconrepository, Repository cPsysConfigRepository) { _sysconrepository = sysconrepository; _CPsysConfigRepository = cPsysConfigRepository; } public PagedInfo GetPageList(Pagination pagination, SysConQueryDto sysconQueryDto) { var predicate = Expressionable.Create(); predicate = predicate.AndIF(!string.IsNullOrEmpty(sysconQueryDto?.KeyWord), m => m.Code.Contains(sysconQueryDto.KeyWord) || m.Name.Contains(sysconQueryDto.KeyWord) || m.SContent.Contains(sysconQueryDto.KeyWord) || m.SType.Contains(sysconQueryDto.KeyWord)); predicate = predicate.AndIF(!string.IsNullOrEmpty(sysconQueryDto?.Code), m => m.Code.Contains(sysconQueryDto.Code)); predicate = predicate.AndIF(!string.IsNullOrEmpty(sysconQueryDto?.Name), m => m.Name.Contains(sysconQueryDto.Name)); predicate = predicate.And(m => m.Default2 != "TunnelType" && m.Default2 != "PationType"); var list = _sysconrepository.Queryable().Where(predicate.ToExpression()) .ToPage(pagination); return list; } public PagedInfo GetTunnelList(Pagination pagination, TunnelQueryDto tunnelQueryDto) { var predicate = Expressionable.Create(); predicate = predicate.AndIF(!string.IsNullOrEmpty(tunnelQueryDto?.KeyWord), m => m.Default1.Contains(tunnelQueryDto.KeyWord) || m.Default1.Contains(tunnelQueryDto.KeyWord)); predicate = predicate.AndIF(!string.IsNullOrEmpty(tunnelQueryDto?.Tunnel), m => m.Default1.Contains(tunnelQueryDto.Tunnel)); predicate = predicate.And(m => m.SType == "InStop" || m.SType == "OutStop"); var list = _sysconrepository.Queryable().Where(predicate.ToExpression()) .Select(m => new TunnelDto() { Id = m.Id.ToString(), WareHouseName = "时效库", Code = m.Code, Name = m.Name, Tunnel = m.Default1, Floor = m.Default2, Statu = string.IsNullOrEmpty(m.SContent) ? "0" : "1", StatuName = string.IsNullOrEmpty(m.SContent) ? "启用" : "禁用", SType = m.SType, Memo = m.Memo, AddTime = m.AddTime, EditTime = m.EditTime, }).MergeTable() .ToPage(pagination); return list; } public PagedInfo GetOutInPationList(Pagination pagination, OutInPationQueryDto pationQueryDto) { var predicate = Expressionable.Create(); predicate = predicate.AndIF(!string.IsNullOrEmpty(pationQueryDto?.KeyWord), m => m.Code.Contains(pationQueryDto.KeyWord) || m.Default2.Contains(pationQueryDto.KeyWord) || m.Name.Contains(pationQueryDto.KeyWord)); predicate = predicate.AndIF(!string.IsNullOrEmpty(pationQueryDto?.Pation), m => m.Code.Contains(pationQueryDto.Pation)); predicate = predicate.And(m => m.Default2 == "PationType"); var list = _sysconrepository.Queryable().Where(predicate.ToExpression()) .Select(m => new OutInPationDto() { Id = m.Id.ToString(), WareHouseName = "时效库", Code = m.Code, Name = m.Name, Statu = string.IsNullOrEmpty(m.SContent) ? "0" : "1", StatuName = string.IsNullOrEmpty(m.SContent) ? "启用" : "禁用", SType = m.SType, Memo = m.Memo, AddTime = m.AddTime, EditTime = m.EditTime, }).MergeTable() .ToPage(pagination); return list; } public bool UpdatePationState(List tunnels, string Scontent, string userId) { if (!tunnels.Any()) { throw new ArgumentException("没有选择站台!"); } var list = _sysconrepository.Queryable().Where(o => tunnels.Contains(o.Id.ToString())).ToList(); if (!list.Any()) { throw new ArgumentException("没有找到该站台!"); } list.ForEach(o => { o.SContent = Scontent; o.EditWho = userId; o.EditTime = DateTime.Now; }); var result = _sysconrepository.UpdateRange(list.ToArray()); return result; } public bool UpdateTunnelState(List tunnels, string Scontent, string userId, string remark) { if (!tunnels.Any()) { throw new ArgumentException("没有选择巷道!"); } var list = _sysconrepository.Queryable().Where(o => tunnels.Contains(o.Id.ToString())).ToList(); if (!list.Any()) { throw new ArgumentException("没有找到该巷道!"); } list.ForEach(o => { o.SContent = Scontent; o.EditWho = userId; o.EditTime = DateTime.Now; o.Memo = remark; }); var result = _sysconrepository.UpdateRange(list.ToArray()); return result; } public void Save(LoginUserInfo loginUser, string keyValue, SysConfig entity) { try { if (string.IsNullOrWhiteSpace(entity.Code)) { throw new ArgumentException("配置编码不能为空"); } if (keyValue.IsEmpty() || keyValue == "undefined") { var mat = _sysconrepository.GetSingle(p => p.Code == entity.Code); if (mat != null) { throw new ArgumentException("编码已存在"); } SysConfig item = new SysConfig() { AddWho = loginUser.UserNo, Code = entity.Code, EditWho = loginUser.UserNo, Name = entity.Name, SContent = entity.SContent, SType = entity.SType, Default1 = entity.Default1, Default2 = entity.Default2, Default3 = entity.Default3, Memo = entity.Memo }; _sysconrepository.Insert(item); } else { entity.EditTime = DateTime.Now; entity.EditWho = loginUser.UserNo; _sysconrepository.AsUpdateable(entity).IgnoreColumns(it => it.AddTime).IgnoreColumns(it => it.AddWho).Where(it => it.Code == keyValue).ExecuteCommand(); } } catch (Exception ex) { throw ex; } } public void Delete(string ModuleNo) { try { _sysconrepository.Deleteable().Where(it => it.Code == ModuleNo).ExecuteCommand(); } catch (Exception ex) { throw ex; } } public PagedInfo GetPalletizingStationPageList(Pagination pagination, SysConQueryDto sysconQueryDto) { var predicate = Expressionable.Create(); predicate = predicate.AndIF(!string.IsNullOrEmpty(sysconQueryDto?.KeyWord), m => m.Code.Contains(sysconQueryDto.KeyWord) || m.Name.Contains(sysconQueryDto.KeyWord) || m.SContent.Contains(sysconQueryDto.KeyWord) || m.SType.Contains(sysconQueryDto.KeyWord)); predicate = predicate.AndIF(!string.IsNullOrEmpty(sysconQueryDto?.Code), m => m.Code.Contains(sysconQueryDto.Code)); predicate = predicate.AndIF(!string.IsNullOrEmpty(sysconQueryDto?.Name), m => m.Name.Contains(sysconQueryDto.Name)); predicate = predicate.And(m => m.SType == "PalletizingType"); var list = _CPsysConfigRepository.Queryable().Where(predicate.ToExpression()) .ToPage(pagination); list.Result.ForEach(o => { if (o.AddWho != "禁用") o.AddWho = "启用"; }); return list; } public bool UpdatePalletizingStationState(string id, string Scontent, string userId) { if (string.IsNullOrEmpty(id)) { throw new ArgumentException("没有选择码垛位!"); } var first = _CPsysConfigRepository.Queryable().First(o => id.Equals(o.Id.ToString())); if (first == null) { throw new ArgumentException("没有找到该码垛位!"); } var result = _CPsysConfigRepository.UpdateModelColumns(p => new wms.sqlsugar.model.cp.SysConfig { AddWho = Scontent,// 禁用 启用 EditWho = userId, EditTime = DateTime.Now, }, it => it.Id.Equals(id)); return result; } } }