CPService.cs 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  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.cp;
  10. using wms.dto.request.fj;
  11. using wms.dto.response;
  12. using wms.dto.response.cp;
  13. using wms.service.IService;
  14. using wms.sqlsugar;
  15. using wms.sqlsugar.model;
  16. using wms.sqlsugar.model.cp;
  17. namespace wms.service.Service
  18. {
  19. public class CPService: ICPService
  20. {
  21. private readonly IMapper _mapper;
  22. private readonly ILogger<CPService> _logger;
  23. private readonly ICPDataService _cptDataService;
  24. public CPService(IMapper mapper, ILogger<CPService> logger, ICPDataService cptDataService)
  25. {
  26. _mapper = mapper;
  27. _logger = logger;
  28. _cptDataService = cptDataService;
  29. }
  30. Repository<cpBillDocument> _docrepository => new Repository<cpBillDocument>();
  31. Repository<cpBaseContainer> _cpBaseContainer => new Repository<cpBaseContainer>();
  32. Repository<cpSysConfig> _sysconfigrepository => new Repository<cpSysConfig>();
  33. Repository<cpBaseMater> _materrepository => new Repository<cpBaseMater>();
  34. Repository<cpBillTask> _billTaskrepository => new Repository<cpBillTask>();
  35. Repository<cpBaseWarehouse> _baseWareHouserepository => new Repository<cpBaseWarehouse>();
  36. Repository<cpBaseWareLocation> _baseWareLocationrepository => new Repository<cpBaseWareLocation>();
  37. Repository<cpBillBarcode> _billBarcoderepository => new Repository<cpBillBarcode>();
  38. Repository<cpBillFeedbackPush> _billFbackPushrepository => new Repository<cpBillFeedbackPush>();
  39. Repository<cpBillContainer> _billGroupStockrepository => new Repository<cpBillContainer>();
  40. Repository<cpBillTaskHistory> _billTaskHistoryrepository => new Repository<cpBillTaskHistory>();
  41. Repository<cpSysJob> _sysJobrepository => new Repository<cpSysJob>();
  42. Repository<cpSysJobApiRelation> _sysJobApirepository => new Repository<cpSysJobApiRelation>();
  43. Repository<cpBillInvFlow> _cpBillInvFlow => new Repository<cpBillInvFlow>();
  44. Repository<cpBillTaskDetail> _cpBillTaskDetail => new Repository<cpBillTaskDetail>();
  45. Repository<cpBillLocationMap> _cpBillLocationMap => new Repository<cpBillLocationMap>();
  46. ITenant _db => SqlSugarHelper.Db;//处理事务
  47. /// <summary>
  48. /// 添加单据
  49. /// </summary>
  50. /// <returns></returns>
  51. public bool Add(cpBillDocument data1)
  52. {
  53. try
  54. {
  55. _db.BeginTran();
  56. _docrepository.Insert(data1);
  57. _db.CommitTran();
  58. }
  59. catch (Exception)
  60. {
  61. _db.RollbackTran();
  62. throw;
  63. }
  64. return true;
  65. }
  66. /// <summary>
  67. /// 获取配置内容信息
  68. /// </summary>
  69. /// <param name="code">配置表code值</param>
  70. /// <returns></returns>
  71. public string GetSysConfigContentByCode(string code)
  72. {
  73. //先读缓存
  74. var cacheContent = RedisHelper.Get("sys_config" + code);
  75. if (!string.IsNullOrEmpty(cacheContent))
  76. {
  77. return cacheContent;
  78. }
  79. var sysconf = _sysconfigrepository.GetSingle(p => p.Code == code);
  80. if (sysconf == null)
  81. {
  82. throw new Exception("数据表没有配置" + code);
  83. }
  84. var content = sysconf.SContent;
  85. string sysname = sysconf.Default1;//所属系统mes/erp
  86. RedisHelper.Set("sys_config" + code, content + "|" + sysname);
  87. return content;
  88. }
  89. /// <summary>
  90. /// 获取配置信息
  91. /// </summary>
  92. /// <param name="code"></param>
  93. /// <returns></returns>
  94. public cpSysConfig GetSysConfigByCode(string code)
  95. {
  96. //Repository<dynamic> _billdtrepository = new Repository<dynamic>();
  97. return _sysconfigrepository.GetSingle(p => p.Code == code);
  98. }
  99. /// <summary>
  100. /// 获取物料信息
  101. /// </summary>
  102. /// <param name="code"></param>
  103. /// <returns></returns>
  104. public cpBaseMater GetBaseMaterByExpression(Expression<Func<cpBaseMater, bool>> WhereExpression)
  105. {
  106. return _materrepository.GetSingle(WhereExpression);
  107. }
  108. /// <summary>
  109. /// 获取配置信息
  110. /// </summary>
  111. /// <param name="code"></param>
  112. /// <returns></returns>
  113. public cpSysConfig GetSysConfigByExpression(Expression<Func<cpSysConfig, bool>> WhereExpression)
  114. {
  115. return _sysconfigrepository.GetSingle(WhereExpression);
  116. }
  117. /// <summary>
  118. /// 获取单据信息
  119. /// </summary>
  120. /// <param name="code"></param>
  121. /// <returns></returns>
  122. public cpBillDocument GetBillDocumentByExpression(Expression<Func<cpBillDocument, bool>> WhereExpression)
  123. {
  124. return _docrepository.GetSingle(WhereExpression);
  125. }
  126. /// <summary>
  127. /// 获取反馈信息
  128. /// </summary>
  129. /// <param name="code"></param>
  130. /// <returns></returns>
  131. public List<cpBillFeedbackPush> GetBillFeedbackList(Expression<Func<cpBillFeedbackPush, bool>> WhereExpression)
  132. {
  133. return _billFbackPushrepository.GetList(WhereExpression);
  134. }
  135. ///// <summary>
  136. ///// 获取单据信息
  137. ///// </summary>
  138. ///// <param name="code"></param>
  139. ///// <returns></returns>
  140. //public cpBillDocument GetBillDocumentList(Expression<Func<cpBillDocument, bool>> WhereExpression)
  141. //{
  142. // return _billdtrepository.Context.Queryable<cpBillDocument, cpSysConfig>((doc, conf) => new object[] {
  143. // JoinType.Left, doc.BState == conf.Code
  144. // }).Where((doc, conf) => doc.Status == 0)
  145. // .Select((bc, bm) => bc).First();
  146. //}
  147. /// <summary>
  148. /// 更新SysConfig表字段
  149. /// </summary>
  150. /// <param name="updateModel"></param>
  151. /// <returns></returns>
  152. public bool UpdateSysConfigModelColumns(UpdateModelColumns<cpSysConfig> updateModel)
  153. {
  154. return _sysconfigrepository.Update(updateModel.Columns, updateModel.WhereExpression);
  155. }
  156. public bool SyncMaterInfo(List<CPSyncMaterInfoResponseItem> ResData)
  157. {
  158. foreach (var item in ResData)
  159. {
  160. if (_materrepository.IsAny(p => p.Code == item.MatCode))
  161. {
  162. _materrepository.UpdateModelColumns(p => new cpBaseMater() { IsHold = item.IsHold, HoldDuration = item.HoldDuration },
  163. p => p.Code == item.MatCode);
  164. }
  165. else
  166. {
  167. var model = _mapper.Map<cpBaseMater>(item);
  168. _materrepository.Insert(model);
  169. }
  170. }
  171. return true;
  172. }
  173. public SRes SpoolMaterialInfoTrans(dto.request.cp.SpoolMaterialInfoTransRequest reqDto)
  174. {
  175. var result = new SRes();
  176. return result;
  177. }
  178. public SRes SalesDocTrans(SalesDocTransRequest reqDto)
  179. {
  180. var result = new SRes();
  181. return result;
  182. }
  183. public SRes SalesBackDocTrans(SalesDocTransRequest reqDto)
  184. {
  185. var result = new SRes();
  186. return result;
  187. }
  188. public SRes ComPushApiResInfo(ComPushApiResInfoRequest reqDto)
  189. {
  190. var result = new SRes();
  191. return result;
  192. }
  193. public SRes ErrorMaterialStockOut(dto.request.cp.ErrorMaterialStockOutRequest reqDto)
  194. {
  195. var result = new SRes();
  196. return result;
  197. }
  198. public SRes StockChange(CpStockChangeRequest reqDto)
  199. {
  200. var result = new SRes();
  201. return result;
  202. }
  203. public StockStateChangeResponse StockStateChange(StockStateChangeRequest reqDto)
  204. {
  205. var result = new StockStateChangeResponse();
  206. return result;
  207. }
  208. }
  209. }