SysConService.cs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  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.HJ.TaskDtos;
  8. using WMS.BZModels;
  9. using WMS.Info;
  10. using WMS.BZSqlSugar;
  11. using wms.sqlsugar.model.pt;
  12. using WMS.BZModels.Dto.PT.SysConDtos;
  13. using System.Diagnostics;
  14. namespace WMS.BZServices.PT
  15. {
  16. public class SysConService
  17. {
  18. private readonly Repository<SysConfig> _sysconrepository;
  19. private readonly BillLogService _billLogService;
  20. public SysConService(Repository<SysConfig> sysconrepository, BillLogService billLogService)
  21. {
  22. _sysconrepository = sysconrepository;
  23. _billLogService = billLogService;
  24. }
  25. public PagedInfo<SysConDto> GetPageList(Pagination pagination, SysConQueryDto sysconQueryDto)
  26. {
  27. var predicate = Expressionable.Create<SysConfig>();
  28. predicate = predicate.AndIF(!string.IsNullOrEmpty(sysconQueryDto?.KeyWord), m => m.code.Contains(sysconQueryDto.KeyWord) || m.name.Contains(sysconQueryDto.KeyWord) || m.scontent.Contains(sysconQueryDto.KeyWord)
  29. );
  30. predicate = predicate.AndIF(!string.IsNullOrEmpty(sysconQueryDto?.Code), m => m.code.Contains(sysconQueryDto.Code));
  31. predicate = predicate.AndIF(!string.IsNullOrEmpty(sysconQueryDto?.Name), m => m.name.Contains(sysconQueryDto.Name));
  32. predicate = predicate.And(m => m.default2 != "TunnelType" && m.stype != "Pinku");
  33. var list = _sysconrepository.Queryable().Where(predicate.ToExpression())
  34. .ToPage<SysConfig, SysConDto>(pagination);
  35. return list;
  36. }
  37. public PagedInfo<TunnelDto> GetTunnelList(Pagination pagination, TunnelQueryDto tunnelQueryDto)
  38. {
  39. var predicate = Expressionable.Create<SysConfig>();
  40. predicate = predicate.AndIF(!string.IsNullOrEmpty(tunnelQueryDto?.KeyWord), m => m.default1.Contains(tunnelQueryDto.KeyWord) || m.default1.Contains(tunnelQueryDto.KeyWord));
  41. predicate = predicate.AndIF(!string.IsNullOrEmpty(tunnelQueryDto?.Tunnel), m => m.default1.Contains(tunnelQueryDto.Tunnel));
  42. predicate = predicate.And(m => m.default2 == "TunnelType");
  43. var list = _sysconrepository.Queryable().Where(predicate.ToExpression())
  44. .Select(m => new TunnelDto()
  45. {
  46. Id = m.Id.ToString(),
  47. WareHouseName = "盘条仓库",
  48. Code = m.code,
  49. Name = m.name,
  50. Tunnel = m.default1,
  51. Statu = string.IsNullOrEmpty(m.scontent) ? "0" : "1",
  52. StatuName = string.IsNullOrEmpty(m.scontent) ? "启用" : "禁用",
  53. SType = m.stype,
  54. Memo = m.Memo,
  55. AddTime = m.AddTime,
  56. EditTime = m.EditTime,
  57. }).MergeTable()
  58. .ToPage(pagination);
  59. return list;
  60. }
  61. public PagedInfo<OutInPationDto> GetOutInPationList(Pagination pagination, OutInPationQueryDto pationQueryDto)
  62. {
  63. var predicate = Expressionable.Create<SysConfig>();
  64. predicate = predicate.AndIF(!string.IsNullOrEmpty(pationQueryDto?.KeyWord), m => m.code.Contains(pationQueryDto.KeyWord) || m.default2.Contains(pationQueryDto.KeyWord)
  65. );
  66. predicate = predicate.AndIF(!string.IsNullOrEmpty(pationQueryDto?.Pation), m => m.code.Contains(pationQueryDto.Pation));
  67. predicate = predicate.And(m => m.default2 == "PationType");
  68. var list = _sysconrepository.Queryable().Where(predicate.ToExpression())
  69. .Select(m => new OutInPationDto()
  70. {
  71. Id = m.Id.ToString(),
  72. WareHouseName = "盘条仓库",
  73. Code = m.code,
  74. Name = m.name,
  75. Statu = string.IsNullOrEmpty(m.scontent) ? "0" : "1",
  76. StatuName = string.IsNullOrEmpty(m.scontent) ? "启用" : "禁用",
  77. SType = m.stype,
  78. Default2= m.default2,
  79. Memo = m.Memo,
  80. AddTime = m.AddTime,
  81. EditTime = m.EditTime,
  82. }).MergeTable()
  83. .ToPage(pagination);
  84. return list;
  85. }
  86. public PagedInfo<PinKuDto> GetPinKuList(Pagination pagination, PinKuQueryDto pinkuQueryDto)
  87. {
  88. var predicate = Expressionable.Create<SysConfig>();
  89. predicate = predicate.AndIF(!string.IsNullOrEmpty(pinkuQueryDto?.KeyWord), m => m.code.Contains(pinkuQueryDto.KeyWord) || m.name.Contains(pinkuQueryDto.KeyWord));
  90. predicate = predicate.AndIF(!string.IsNullOrEmpty(pinkuQueryDto?.Code), m => m.code.Contains(pinkuQueryDto.Code));
  91. predicate = predicate.And(m => m.default1 == "22PinKu");
  92. var list = _sysconrepository.Queryable().Where(predicate.ToExpression())
  93. .Select(m => new PinKuDto()
  94. {
  95. Id = m.Id.ToString(),
  96. WareHouseName = "盘条仓库",
  97. Code = m.code,
  98. Name = m.name,
  99. SContent = m.scontent,
  100. SType = "平库点位",
  101. Memo = m.Memo,
  102. Default2=m.default2,
  103. Default5=m.default5,
  104. Default6=m.default6,
  105. AddTime = m.AddTime,
  106. EditTime = m.EditTime,
  107. }).MergeTable()
  108. .ToPage(pagination);
  109. return list;
  110. }
  111. public PagedInfo<PinKuDto> GetProductPinKuList(Pagination pagination, PinKuQueryDto pinkuQueryDto)
  112. {
  113. var predicate = Expressionable.Create<SysConfig>();
  114. predicate = predicate.AndIF(!string.IsNullOrEmpty(pinkuQueryDto?.KeyWord), m => m.code.Contains(pinkuQueryDto.KeyWord) || m.name.Contains(pinkuQueryDto.KeyWord));
  115. predicate = predicate.AndIF(!string.IsNullOrEmpty(pinkuQueryDto?.Code), m => m.code.Contains(pinkuQueryDto.Code));
  116. predicate = predicate.And(m => m.default1 == "ProductPinKu");
  117. var list = _sysconrepository.Queryable().Where(predicate.ToExpression())
  118. .Select(m => new PinKuDto()
  119. {
  120. Id = m.Id.ToString(),
  121. WareHouseName = "盘条仓库",
  122. Code = m.code,
  123. Name = m.name,
  124. SContent = m.scontent,
  125. SType = "生产领料点位",
  126. Memo = m.Memo,
  127. Default2=m.default2,
  128. Default3=m.default3,
  129. Default5=m.default5,
  130. Default6=m.default6,
  131. AddTime = m.AddTime,
  132. EditTime = m.EditTime,
  133. }).MergeTable()
  134. .ToPage(pagination);
  135. return list;
  136. }
  137. public bool UpdatePationState(List<string> tunnels, string Scontent, string userId)
  138. {
  139. if (!tunnels.Any())
  140. {
  141. throw new ArgumentException("没有选择站台!");
  142. }
  143. var list = _sysconrepository.Queryable().Where(o => tunnels.Contains(o.Id.ToString())).ToList();
  144. if (!list.Any())
  145. {
  146. throw new ArgumentException("没有找到该站台!");
  147. }
  148. list.ForEach(o =>
  149. {
  150. o.scontent = Scontent;
  151. o.EditWho = userId;
  152. o.EditTime = DateTime.Now;
  153. });
  154. var result = _sysconrepository.UpdateRange(list.ToArray());
  155. return result;
  156. }
  157. public bool UpdateTunnelState(List<string> tunnels, string Scontent, string userId, string remark)
  158. {
  159. if (!tunnels.Any())
  160. {
  161. throw new ArgumentException("没有选择巷道!");
  162. }
  163. var list = _sysconrepository.Queryable().Where(o => tunnels.Contains(o.Id.ToString())).ToList();
  164. if (!list.Any())
  165. {
  166. throw new ArgumentException("没有找到该巷道!");
  167. }
  168. list.ForEach(o =>
  169. {
  170. o.scontent = Scontent;
  171. o.EditWho = userId;
  172. o.EditTime = DateTime.Now;
  173. o.Memo = remark;
  174. });
  175. var result = _sysconrepository.UpdateRange(list.ToArray());
  176. return result;
  177. }
  178. public void SaveProductPinKuStatus(LoginUserInfo loginUser, string keyValue, SysConfig entity)
  179. {
  180. try
  181. {
  182. if (string.IsNullOrWhiteSpace(entity.code))
  183. {
  184. throw new ArgumentException("点位编码不能为空");
  185. }
  186. var firstentity = _sysconrepository.Queryable().First(o => entity.code==o.code) ;
  187. if (firstentity==null)
  188. {
  189. throw new ArgumentException("没有找到该点位!");
  190. }
  191. var firstscontent=firstentity.scontent;
  192. var firstMemo = firstentity.Memo ;
  193. firstentity.scontent = entity.scontent;
  194. firstentity.Memo = entity.Memo;
  195. firstentity.EditWho = loginUser.UserNo;
  196. firstentity.EditTime = DateTime.Now;
  197. _billLogService.WriteLog(loginUser, entity, $"平库管理状态由:{firstscontent}改为:{entity.scontent},Memo:{firstMemo}改为:{entity.Memo}", "WMS.BZServices.PT.SysConService", "SaveProductPinKuStatus", new Stopwatch(), ELogType.Work, null);
  198. _sysconrepository.Update(firstentity);
  199. }
  200. catch (Exception ex)
  201. {
  202. throw ex;
  203. }
  204. }
  205. public void Save(LoginUserInfo loginUser, string keyValue, SysConfig entity)
  206. {
  207. try
  208. {
  209. if (string.IsNullOrWhiteSpace(entity.code))
  210. {
  211. throw new ArgumentException("配置编码不能为空");
  212. }
  213. if (keyValue.IsEmpty() || keyValue == "undefined")
  214. {
  215. var mat = _sysconrepository.GetSingle(p => p.code == entity.code);
  216. if (mat != null)
  217. {
  218. throw new ArgumentException("编码已存在");
  219. }
  220. SysConfig item = new SysConfig()
  221. {
  222. AddWho = loginUser.UserNo,
  223. code = entity.code,
  224. EditWho = loginUser.UserNo,
  225. name = entity.name,
  226. scontent = entity.scontent,
  227. stype = entity.stype,
  228. default1 = entity.default1,
  229. default2 = entity.default2,
  230. default3 = entity.default3,
  231. Memo = entity.Memo
  232. };
  233. _sysconrepository.Insert(item);
  234. }
  235. else
  236. {
  237. entity.EditTime = DateTime.Now;
  238. entity.EditWho = loginUser.UserNo;
  239. _sysconrepository.AsUpdateable(entity).IgnoreColumns(it => it.AddTime).IgnoreColumns(it => it.AddWho).Where(it => it.code == keyValue).ExecuteCommand();
  240. }
  241. }
  242. catch (Exception ex)
  243. {
  244. throw ex;
  245. }
  246. }
  247. public void Delete(string ModuleNo)
  248. {
  249. try
  250. {
  251. _sysconrepository.Deleteable().Where(it => it.code == ModuleNo).ExecuteCommand();
  252. }
  253. catch (Exception ex)
  254. {
  255. throw ex;
  256. }
  257. }
  258. public bool UpdatePinkuState(List<string> pinku, string Scontent, string userId)
  259. {
  260. if (!pinku.Any())
  261. {
  262. throw new ArgumentException("没有选择点位!");
  263. }
  264. var list = _sysconrepository.Queryable().Where(o => pinku.Contains(o.Id.ToString())).ToList();
  265. if (!list.Any())
  266. {
  267. throw new ArgumentException("没有找到该点位!");
  268. }
  269. list.ForEach(o =>
  270. {
  271. o.scontent = Scontent;
  272. o.EditWho = userId;
  273. o.EditTime = DateTime.Now;
  274. });
  275. var result = _sysconrepository.UpdateRange(list.ToArray());
  276. return result;
  277. }
  278. public IEnumerable<dynamic> GetEquipList()
  279. {
  280. return _sysconrepository.Queryable().Where(o => o.stype == "Pinku" && (o.default1 == "ProductPinKu" || o.default1 == "22PinKu")).Select(o => o.code).Distinct().ToList().OrderBy(o => o).Select(o => new { id = o, text = o });
  281. }
  282. }
  283. }