SysConService.cs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. using SqlSugar;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using WMS.BZModels.Dto.SX.TaskDtos;
  8. using WMS.BZModels;
  9. using WMS.Info;
  10. using wms.sqlsugar.model.sx;
  11. using WMS.BZSqlSugar;
  12. using WMS.BZModels.Dto.SX.SysConDtos;
  13. using WMS.Util;
  14. using Org.BouncyCastle.Crypto;
  15. namespace WMS.BZServices.SX
  16. {
  17. public class SysConService
  18. {
  19. private readonly Repository<SysConfig> _sysconrepository;
  20. private readonly Repository<wms.sqlsugar.model.cp.SysConfig> _CPsysConfigRepository;
  21. public SysConService(Repository<SysConfig> sysconrepository, Repository<wms.sqlsugar.model.cp.SysConfig> cPsysConfigRepository)
  22. {
  23. _sysconrepository = sysconrepository;
  24. _CPsysConfigRepository = cPsysConfigRepository;
  25. }
  26. public PagedInfo<SysConDto> GetPageList(Pagination pagination, SysConQueryDto sysconQueryDto)
  27. {
  28. var predicate = Expressionable.Create<SysConfig>();
  29. predicate = predicate.AndIF(!string.IsNullOrEmpty(sysconQueryDto?.KeyWord), m => m.Code.Contains(sysconQueryDto.KeyWord) || m.Name.Contains(sysconQueryDto.KeyWord) || m.SContent.Contains(sysconQueryDto.KeyWord)
  30. || m.SType.Contains(sysconQueryDto.KeyWord));
  31. predicate = predicate.AndIF(!string.IsNullOrEmpty(sysconQueryDto?.Code), m => m.Code.Contains(sysconQueryDto.Code));
  32. predicate = predicate.AndIF(!string.IsNullOrEmpty(sysconQueryDto?.Name), m => m.Name.Contains(sysconQueryDto.Name));
  33. predicate = predicate.And(m => m.Default2 != "TunnelType" && m.Default2 != "PationType");
  34. var list = _sysconrepository.Queryable().Where(predicate.ToExpression())
  35. .ToPage<SysConfig, SysConDto>(pagination);
  36. return list;
  37. }
  38. public PagedInfo<TunnelDto> GetTunnelList(Pagination pagination, TunnelQueryDto tunnelQueryDto)
  39. {
  40. var predicate = Expressionable.Create<SysConfig>();
  41. predicate = predicate.AndIF(!string.IsNullOrEmpty(tunnelQueryDto?.KeyWord), m => m.Default1.Contains(tunnelQueryDto.KeyWord) || m.Default1.Contains(tunnelQueryDto.KeyWord));
  42. predicate = predicate.AndIF(!string.IsNullOrEmpty(tunnelQueryDto?.Tunnel), m => m.Default1.Contains(tunnelQueryDto.Tunnel));
  43. predicate = predicate.And(m => m.SType == "InStop" || m.SType == "OutStop");
  44. var list = _sysconrepository.Queryable().Where(predicate.ToExpression())
  45. .Select(m => new TunnelDto()
  46. {
  47. Id = m.Id.ToString(),
  48. WareHouseName = "时效库",
  49. Code = m.Code,
  50. Name = m.Name,
  51. Tunnel = m.Default1,
  52. Floor = m.Default2,
  53. Statu = string.IsNullOrEmpty(m.SContent) ? "0" : "1",
  54. StatuName = string.IsNullOrEmpty(m.SContent) ? "启用" : "禁用",
  55. SType = m.SType,
  56. Memo = m.Memo,
  57. AddTime = m.AddTime,
  58. EditTime = m.EditTime,
  59. }).MergeTable()
  60. .ToPage(pagination);
  61. return list;
  62. }
  63. public PagedInfo<OutInPationDto> GetOutInPationList(Pagination pagination, OutInPationQueryDto pationQueryDto)
  64. {
  65. var predicate = Expressionable.Create<SysConfig>();
  66. predicate = predicate.AndIF(!string.IsNullOrEmpty(pationQueryDto?.KeyWord), m => m.Code.Contains(pationQueryDto.KeyWord) || m.Default2.Contains(pationQueryDto.KeyWord)
  67. || m.Name.Contains(pationQueryDto.KeyWord));
  68. predicate = predicate.AndIF(!string.IsNullOrEmpty(pationQueryDto?.Pation), m => m.Code.Contains(pationQueryDto.Pation));
  69. predicate = predicate.And(m => m.Default2 == "PationType");
  70. var list = _sysconrepository.Queryable().Where(predicate.ToExpression())
  71. .Select(m => new OutInPationDto()
  72. {
  73. Id = m.Id.ToString(),
  74. WareHouseName = "时效库",
  75. Code = m.Code,
  76. Name = m.Name,
  77. Statu = string.IsNullOrEmpty(m.SContent) ? "0" : "1",
  78. StatuName = string.IsNullOrEmpty(m.SContent) ? "启用" : "禁用",
  79. SType = m.SType,
  80. Memo = m.Memo,
  81. AddTime = m.AddTime,
  82. EditTime = m.EditTime,
  83. }).MergeTable()
  84. .ToPage(pagination);
  85. return list;
  86. }
  87. public bool UpdatePationState(List<string> tunnels, string Scontent, string userId)
  88. {
  89. if (!tunnels.Any())
  90. {
  91. throw new ArgumentException("没有选择站台!");
  92. }
  93. var list = _sysconrepository.Queryable().Where(o => tunnels.Contains(o.Id.ToString())).ToList();
  94. if (!list.Any())
  95. {
  96. throw new ArgumentException("没有找到该站台!");
  97. }
  98. list.ForEach(o =>
  99. {
  100. o.SContent = Scontent;
  101. o.EditWho = userId;
  102. o.EditTime = DateTime.Now;
  103. });
  104. var result = _sysconrepository.UpdateRange(list.ToArray());
  105. return result;
  106. }
  107. public bool UpdateTunnelState(List<string> tunnels, string Scontent, string userId, string remark)
  108. {
  109. if (!tunnels.Any())
  110. {
  111. throw new ArgumentException("没有选择巷道!");
  112. }
  113. var list = _sysconrepository.Queryable().Where(o => tunnels.Contains(o.Id.ToString())).ToList();
  114. if (!list.Any())
  115. {
  116. throw new ArgumentException("没有找到该巷道!");
  117. }
  118. list.ForEach(o =>
  119. {
  120. o.SContent = Scontent;
  121. o.EditWho = userId;
  122. o.EditTime = DateTime.Now;
  123. o.Memo = remark;
  124. });
  125. var result = _sysconrepository.UpdateRange(list.ToArray());
  126. return result;
  127. }
  128. public void Save(LoginUserInfo loginUser, string keyValue, SysConfig entity)
  129. {
  130. try
  131. {
  132. if (string.IsNullOrWhiteSpace(entity.Code))
  133. {
  134. throw new ArgumentException("配置编码不能为空");
  135. }
  136. if (keyValue.IsEmpty() || keyValue == "undefined")
  137. {
  138. var mat = _sysconrepository.GetSingle(p => p.Code == entity.Code);
  139. if (mat != null)
  140. {
  141. throw new ArgumentException("编码已存在");
  142. }
  143. SysConfig item = new SysConfig()
  144. {
  145. AddWho = loginUser.UserNo,
  146. Code = entity.Code,
  147. EditWho = loginUser.UserNo,
  148. Name = entity.Name,
  149. SContent = entity.SContent,
  150. SType = entity.SType,
  151. Default1 = entity.Default1,
  152. Default2 = entity.Default2,
  153. Default3 = entity.Default3,
  154. Memo = entity.Memo
  155. };
  156. _sysconrepository.Insert(item);
  157. }
  158. else
  159. {
  160. entity.EditTime = DateTime.Now;
  161. entity.EditWho = loginUser.UserNo;
  162. _sysconrepository.AsUpdateable(entity).IgnoreColumns(it => it.AddTime).IgnoreColumns(it => it.AddWho).Where(it => it.Code == keyValue).ExecuteCommand();
  163. }
  164. }
  165. catch (Exception ex)
  166. {
  167. throw ex;
  168. }
  169. }
  170. public void Delete(string ModuleNo)
  171. {
  172. try
  173. {
  174. _sysconrepository.Deleteable().Where(it => it.Code == ModuleNo).ExecuteCommand();
  175. }
  176. catch (Exception ex)
  177. {
  178. throw ex;
  179. }
  180. }
  181. public PagedInfo<WMS.BZModels.Dto.CP.SysConDtos.SysConDto> GetPalletizingStationPageList(Pagination pagination, SysConQueryDto sysconQueryDto)
  182. {
  183. var predicate = Expressionable.Create<wms.sqlsugar.model.cp.SysConfig>();
  184. predicate = predicate.AndIF(!string.IsNullOrEmpty(sysconQueryDto?.KeyWord), m => m.Code.Contains(sysconQueryDto.KeyWord) || m.Name.Contains(sysconQueryDto.KeyWord) || m.SContent.Contains(sysconQueryDto.KeyWord)
  185. || m.SType.Contains(sysconQueryDto.KeyWord));
  186. predicate = predicate.AndIF(!string.IsNullOrEmpty(sysconQueryDto?.Code), m => m.Code.Contains(sysconQueryDto.Code));
  187. predicate = predicate.AndIF(!string.IsNullOrEmpty(sysconQueryDto?.Name), m => m.Name.Contains(sysconQueryDto.Name));
  188. predicate = predicate.And(m => m.SType == "PalletizingType");
  189. var list = _CPsysConfigRepository.Queryable().Where(predicate.ToExpression())
  190. .ToPage<wms.sqlsugar.model.cp.SysConfig, WMS.BZModels.Dto.CP.SysConDtos.SysConDto>(pagination);
  191. list.Result.ForEach(o => {
  192. if (o.AddWho != "禁用")
  193. o.AddWho = "启用";
  194. });
  195. return list;
  196. }
  197. public bool UpdatePalletizingStationState(string id, string Scontent, string userId)
  198. {
  199. if (string.IsNullOrEmpty(id))
  200. {
  201. throw new ArgumentException("没有选择码垛位!");
  202. }
  203. var first = _CPsysConfigRepository.Queryable().First(o => id.Equals(o.Id.ToString()));
  204. if (first == null)
  205. {
  206. throw new ArgumentException("没有找到该码垛位!");
  207. }
  208. var result = _CPsysConfigRepository.UpdateModelColumns(p => new wms.sqlsugar.model.cp.SysConfig
  209. {
  210. AddWho = Scontent,// 禁用 启用
  211. EditWho = userId,
  212. EditTime = DateTime.Now,
  213. }, it => it.Id.Equals(id));
  214. return result;
  215. }
  216. }
  217. }