SXService.cs 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. using AutoMapper;
  2. using Microsoft.Extensions.Logging;
  3. using SqlSugar;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq.Expressions;
  7. using System.Text;
  8. using wms.dataservice.IDataSetvice;
  9. using wms.dto.request.sx;
  10. using wms.dto.response;
  11. using wms.dto.response.sx;
  12. using wms.service.IService;
  13. using wms.sqlsugar;
  14. using wms.sqlsugar.model;
  15. using wms.sqlsugar.model.sx;
  16. namespace wms.service.Service
  17. {
  18. public class SXService: ISXService
  19. {
  20. private readonly IMapper _mapper;
  21. private readonly ILogger<SXService> _logger;
  22. private readonly ISXDataService _sxtDataService;
  23. public SXService(IMapper mapper, ILogger<SXService> logger, ISXDataService sxtDataService)
  24. {
  25. _mapper = mapper;
  26. _logger = logger;
  27. _sxtDataService = sxtDataService;
  28. }
  29. Repository<sxBillDocument> _docrepository => new Repository<sxBillDocument>();
  30. Repository<sxBaseContainer> _sxBaseContainer => new Repository<sxBaseContainer>();
  31. Repository<sxSysConfig> _sysconfigrepository => new Repository<sxSysConfig>();
  32. Repository<sxBaseMater> _materrepository => new Repository<sxBaseMater>();
  33. Repository<sxBillTask> _billTaskrepository => new Repository<sxBillTask>();
  34. Repository<sxBaseWarehouse> _baseWareHouserepository => new Repository<sxBaseWarehouse>();
  35. Repository<sxBaseWareLocation> _baseWareLocationrepository => new Repository<sxBaseWareLocation>();
  36. Repository<sxBillBarcode> _billBarcoderepository => new Repository<sxBillBarcode>();
  37. Repository<sxBillFeedbackPush> _billFbackPushrepository => new Repository<sxBillFeedbackPush>();
  38. Repository<sxBillContainer> _billGroupStockrepository => new Repository<sxBillContainer>();
  39. Repository<sxBillTaskHistory> _billTaskHistoryrepository => new Repository<sxBillTaskHistory>();
  40. Repository<sxSysJob> _sysJobrepository => new Repository<sxSysJob>();
  41. Repository<sxSysJobApiRelation> _sysJobApirepository => new Repository<sxSysJobApiRelation>();
  42. Repository<sxBillInvFlow> _sxBillInvFlow => new Repository<sxBillInvFlow>();
  43. Repository<sxBillTaskDetail> _sxBillTaskDetail => new Repository<sxBillTaskDetail>();
  44. Repository<sxBillLocationMap> _sxBillLocationMap => new Repository<sxBillLocationMap>();
  45. ITenant _db => SqlSugarHelper.Db;//处理事务
  46. /// <summary>
  47. /// 添加单据
  48. /// </summary>
  49. /// <returns></returns>
  50. public bool Add(sxBillDocument data1)
  51. {
  52. try
  53. {
  54. _db.BeginTran();
  55. _docrepository.Insert(data1);
  56. _db.CommitTran();
  57. }
  58. catch (Exception)
  59. {
  60. _db.RollbackTran();
  61. throw;
  62. }
  63. return true;
  64. }
  65. /// <summary>
  66. /// 获取配置内容信息
  67. /// </summary>
  68. /// <param name="code">配置表code值</param>
  69. /// <returns></returns>
  70. public string GetSysConfigContentByCode(string code)
  71. {
  72. //先读缓存
  73. var cacheContent = RedisHelper.Get("sys_config" + code);
  74. if (!string.IsNullOrEmpty(cacheContent))
  75. {
  76. return cacheContent;
  77. }
  78. var sysconf = _sysconfigrepository.GetSingle(p => p.Code == code);
  79. if (sysconf == null)
  80. {
  81. throw new Exception("数据表没有配置" + code);
  82. }
  83. var content = sysconf.SContent;
  84. string sysname = sysconf.Default1;//所属系统mes/erp
  85. RedisHelper.Set("sys_config" + code, content + "|" + sysname);
  86. return content;
  87. }
  88. /// <summary>
  89. /// 获取配置信息
  90. /// </summary>
  91. /// <param name="code"></param>
  92. /// <returns></returns>
  93. public sxSysConfig GetSysConfigByCode(string code)
  94. {
  95. //Repository<dynamic> _billdtrepository = new Repository<dynamic>();
  96. return _sysconfigrepository.GetSingle(p => p.Code == code);
  97. }
  98. /// <summary>
  99. /// 获取物料信息
  100. /// </summary>
  101. /// <param name="code"></param>
  102. /// <returns></returns>
  103. public sxBaseMater GetBaseMaterByExpression(Expression<Func<sxBaseMater, bool>> WhereExpression)
  104. {
  105. return _materrepository.GetSingle(WhereExpression);
  106. }
  107. /// <summary>
  108. /// 获取配置信息
  109. /// </summary>
  110. /// <param name="code"></param>
  111. /// <returns></returns>
  112. public sxSysConfig GetSysConfigByExpression(Expression<Func<sxSysConfig, bool>> WhereExpression)
  113. {
  114. return _sysconfigrepository.GetSingle(WhereExpression);
  115. }
  116. /// <summary>
  117. /// 获取单据信息
  118. /// </summary>
  119. /// <param name="code"></param>
  120. /// <returns></returns>
  121. public sxBillDocument GetBillDocumentByExpression(Expression<Func<sxBillDocument, bool>> WhereExpression)
  122. {
  123. return _docrepository.GetSingle(WhereExpression);
  124. }
  125. /// <summary>
  126. /// 获取反馈信息
  127. /// </summary>
  128. /// <param name="code"></param>
  129. /// <returns></returns>
  130. public List<sxBillFeedbackPush> GetBillFeedbackList(Expression<Func<sxBillFeedbackPush, bool>> WhereExpression)
  131. {
  132. return _billFbackPushrepository.GetList(WhereExpression);
  133. }
  134. ///// <summary>
  135. ///// 获取单据信息
  136. ///// </summary>
  137. ///// <param name="code"></param>
  138. ///// <returns></returns>
  139. //public sxBillDocument GetBillDocumentList(Expression<Func<sxBillDocument, bool>> WhereExpression)
  140. //{
  141. // return _billdtrepository.Context.Queryable<sxBillDocument, sxSysConfig>((doc, conf) => new object[] {
  142. // JoinType.Left, doc.BState == conf.Code
  143. // }).Where((doc, conf) => doc.Status == 0)
  144. // .Select((bc, bm) => bc).First();
  145. //}
  146. /// <summary>
  147. /// 更新SysConfig表字段
  148. /// </summary>
  149. /// <param name="updateModel"></param>
  150. /// <returns></returns>
  151. public bool UpdateSysConfigModelColumns(UpdateModelColumns<sxSysConfig> updateModel)
  152. {
  153. return _sysconfigrepository.Update(updateModel.Columns, updateModel.WhereExpression);
  154. }
  155. public bool SyncMaterInfo(List<SXSyncMaterInfoResponseItem> ResData)
  156. {
  157. foreach (var item in ResData)
  158. {
  159. if (_materrepository.IsAny(p => p.Code == item.MatCode))
  160. {
  161. _materrepository.UpdateModelColumns(p => new sxBaseMater() { IsHold = item.IsHold, HoldDuration = item.HoldDuration },
  162. p => p.Code == item.MatCode);
  163. }
  164. else
  165. {
  166. var model = _mapper.Map<sxBaseMater>(item);
  167. _materrepository.Insert(model);
  168. }
  169. }
  170. return true;
  171. }
  172. public SRes SpoolMaterialInfoTrans(SxSpoolMaterialInfoTransRequest reqDto)
  173. {
  174. var result = new SRes();
  175. return result;
  176. }
  177. public SRes StockChange(SxStockChangeRequest reqDto)
  178. {
  179. var result = new SRes();
  180. return result;
  181. }
  182. }
  183. }