FrontServiceImpl.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. package com.xlht.xlhtproject.service.impl;
  2. import com.xlht.xlhtproject.domain.*;
  3. import com.xlht.xlhtproject.enums.BusinessEnum;
  4. import com.xlht.xlhtproject.mapper.*;
  5. import com.xlht.xlhtproject.service.IFrontService;
  6. import com.xlht.xlhtproject.utils.DateUtils;
  7. import com.xlht.xlhtproject.utils.StringUtils;
  8. import lombok.extern.slf4j.Slf4j;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.stereotype.Service;
  11. import java.math.RoundingMode;
  12. import java.util.*;
  13. import java.util.stream.Collectors;
  14. import static com.xlht.xlhtproject.enums.MyConstants.*;
  15. @Service
  16. @Slf4j
  17. public class FrontServiceImpl implements IFrontService {
  18. @Autowired
  19. private TShuju1Mapper shuju1Mapper;
  20. @Autowired
  21. private TTbXieMapper xieMapper;
  22. @Autowired
  23. private ZAssayMapper zAssayMapper;
  24. @Autowired
  25. private TXlhtAddRecordMapper xlhtAddRecordMapper;
  26. @Autowired
  27. private ZAssayResultMapper zAssayResultMapper;
  28. @Override
  29. public SmartAdd smartAddDataInfo() {
  30. return this.shuju1Mapper.getNewestData();
  31. }
  32. @Override
  33. public Map<String, List<ChartBasic>> smartAddCharList(int type, String timeBegin, String timeEnd) {
  34. // return Collections.emptyMap();
  35. //日期兜底处理
  36. Date nowDate = DateUtils.getNowDate();
  37. Date dayBefore7 = DateUtils.plusDate(-1, nowDate);
  38. //2024年09月13日17:02:59 支持前段自定义起止时间
  39. //先用日期获取当天和前一天的数据,如果获取不到,则提示错误信息
  40. String nowDateStr = StringUtils.isBlank(timeEnd) ? DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, nowDate) : timeEnd;
  41. String dayBefore1Str = StringUtils.isBlank(timeBegin) ? DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, dayBefore7) : timeBegin;
  42. //返回的对象
  43. Map<String, List<ChartBasic>> result = new HashMap<>();
  44. //获取筛选日期内的所有的数据
  45. List<TShuju1> tShuju1List = this.shuju1Mapper.selectTShuju1List(TShuju1.builder().timeBegin(dayBefore1Str).timeEnd(nowDateStr).build());
  46. List<ChartBasic> list = new ArrayList<>();
  47. //先判断类型,然后根据不同类型,查询不同的数据
  48. if(BusinessEnum.SmartAddMedicineReqEnum.JSLL.getCode() == type){
  49. //查询仪表即可
  50. list = tShuju1List.stream()
  51. .map(o -> new ChartBasic(o.getTIME(), Objects.isNull(o.getScJsZll()) ? null : o.getScJsZll().divide(BigDecimal_2, NUMBER_SCALE_4, RoundingMode.HALF_UP)))
  52. .collect(Collectors.toList());
  53. result.put(BusinessEnum.DataSourceEnum.YB.getCode(), list);
  54. }else if(BusinessEnum.SmartAddMedicineReqEnum.HY_1_XSY.getCode() == type){
  55. //查询化验室
  56. list = tShuju1List.stream()
  57. .map(o -> new ChartBasic(o.getTIME(), o.getJqr1HyXiaodan()))
  58. .collect(Collectors.toList());
  59. result.put(BusinessEnum.DataSourceEnum.HY.getCode(), list);
  60. //查询预测 锡林浩特没有预测数据
  61. // result.put(BusinessEnum.DataSourceEnum.YC.getCode(), list);
  62. }else if(BusinessEnum.SmartAddMedicineReqEnum.HY_2_XSY.getCode() == type){
  63. //查询化验室
  64. list = tShuju1List.stream()
  65. .map(o -> new ChartBasic(o.getTIME(), o.getJqr2HyXiaodan()))
  66. .collect(Collectors.toList());
  67. result.put(BusinessEnum.DataSourceEnum.HY.getCode(), list);
  68. //查询预测 锡林浩特没有预测数据
  69. // list =
  70. // result.put(BusinessEnum.DataSourceEnum.YC.getCode(), list);
  71. }else if(BusinessEnum.SmartAddMedicineReqEnum.QY_1_AD.getCode() == type){
  72. //查询化验室
  73. list = tShuju1List.stream()
  74. .map(o -> new ChartBasic(o.getTIME(), o.getJqr1QyAndan()))
  75. .collect(Collectors.toList());
  76. result.put(BusinessEnum.DataSourceEnum.HY.getCode(), list);
  77. }else if(BusinessEnum.SmartAddMedicineReqEnum.QY_2_AD.getCode() == type){
  78. //查询化验室
  79. list = tShuju1List.stream()
  80. .map(o -> new ChartBasic(o.getTIME(), o.getJqr2QyAndan()))
  81. .collect(Collectors.toList());
  82. result.put(BusinessEnum.DataSourceEnum.HY.getCode(), list);
  83. }else if(BusinessEnum.SmartAddMedicineReqEnum.JSCOD.getCode() == type){
  84. //查询仪表即可
  85. list = tShuju1List.stream()
  86. .map(o -> new ChartBasic(o.getTIME(), o.getScJsCod()))
  87. .collect(Collectors.toList());
  88. result.put(BusinessEnum.DataSourceEnum.YB.getCode(), list);
  89. //查询化验室
  90. list = tShuju1List.stream()
  91. .map(o -> new ChartBasic(o.getTIME(), o.getJqrSwcCod()))
  92. .collect(Collectors.toList());
  93. result.put(BusinessEnum.DataSourceEnum.HY.getCode(), list);
  94. }else if(BusinessEnum.SmartAddMedicineReqEnum.JSTN.getCode() == type){
  95. //查询仪表即可
  96. list = tShuju1List.stream()
  97. .map(o -> new ChartBasic(o.getTIME(), o.getScJsZongdan()))
  98. .collect(Collectors.toList());
  99. result.put(BusinessEnum.DataSourceEnum.YB.getCode(), list);
  100. }else if(BusinessEnum.SmartAddMedicineReqEnum.TYTJL.getCode() == type){
  101. //查询仪表即可 锡林浩特的没有
  102. /*list = tShuju1List.stream()
  103. .map(o -> new ChartBasic(o.getTIME(), o.get()))
  104. .collect(Collectors.toList());
  105. result.put(BusinessEnum.DataSourceEnum.YB.getCode(), list);*/
  106. }else{
  107. log.info("暂不支持的类型~~~");
  108. }
  109. return result;
  110. }
  111. /**
  112. *
  113. * 0 进水流量
  114. * 1 #1好氧池硝酸盐
  115. * 2 #2好氧池硝酸盐
  116. * 3 #1缺氧池氨氮
  117. * 4 #2缺氧池氨氮
  118. * 5 进水COD--连续检测
  119. * 6 进水COD--在线仪表
  120. * 7 进水总氮
  121. * 8 碳源投加量-#1-计算投药量
  122. * 9 碳源投加量-#2-计算投药量
  123. * 10 碳源投加量-#1-组态反馈
  124. * 11 碳源投加量-#2-组态反馈
  125. * @param timeBegin
  126. * @param timeEnd
  127. * @return
  128. */
  129. @Override
  130. public Map<String, List<ChartBasic>> smartAddCharListAll(String timeBegin, String timeEnd) {
  131. //返回结果
  132. Map<String, List<ChartBasic>> result = new HashMap<>();
  133. //日期兜底处理
  134. Date nowDate = DateUtils.getNowDate();
  135. Date dayBefore7 = DateUtils.plusDate(-1, nowDate);
  136. //2024年09月13日17:02:59 支持前段自定义起止时间
  137. //先用日期获取当天和前一天的数据,如果获取不到,则提示错误信息
  138. String nowDateStr = StringUtils.isBlank(timeEnd) ? DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, nowDate) : timeEnd;
  139. String dayBefore1Str = StringUtils.isBlank(timeBegin) ? DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, dayBefore7) : timeBegin;
  140. //获取筛选日期内的所有的数据
  141. List<TShuju1> tShuju1List = this.shuju1Mapper.selectTShuju1List(TShuju1.builder().timeBegin(dayBefore1Str).timeEnd(nowDateStr).build());
  142. //返回的对象具体内容
  143. //进水流量
  144. result.put("0", tShuju1List.stream()
  145. .map(o -> new ChartBasic(o.getTIME(), Objects.isNull(o.getScJsZll()) ? null : o.getScJsZll().divide(BigDecimal_2, NUMBER_SCALE_4, RoundingMode.HALF_UP)))
  146. .collect(Collectors.toList()));
  147. //#1好氧池硝酸盐
  148. result.put("1", tShuju1List.stream()
  149. .map(o -> new ChartBasic(o.getTIME(), o.getJqr1HyXiaodan()))
  150. .collect(Collectors.toList()));
  151. //#2好氧池硝酸盐
  152. result.put("2", tShuju1List.stream()
  153. .map(o -> new ChartBasic(o.getTIME(), o.getJqr2HyXiaodan()))
  154. .collect(Collectors.toList()));
  155. //#1缺氧池氨氮
  156. result.put("3", tShuju1List.stream()
  157. .map(o -> new ChartBasic(o.getTIME(), o.getJqr1QyAndan()))
  158. .collect(Collectors.toList()));
  159. //#2缺氧池氨氮
  160. result.put("4", tShuju1List.stream()
  161. .map(o -> new ChartBasic(o.getTIME(), o.getJqr2QyAndan()))
  162. .collect(Collectors.toList()));
  163. //进水COD--连续检测
  164. result.put("5", tShuju1List.stream()
  165. .map(o -> new ChartBasic(o.getTIME(), o.getJqrSwcCod()))
  166. .collect(Collectors.toList()));
  167. //进水COD--在线仪表
  168. result.put("6", tShuju1List.stream()
  169. .map(o -> new ChartBasic(o.getTIME(), o.getScJsCod()))
  170. .collect(Collectors.toList()));
  171. //进水总氮
  172. result.put("7", tShuju1List.stream()
  173. .map(o -> new ChartBasic(o.getTIME(), o.getScJsZongdan()))
  174. .collect(Collectors.toList()));
  175. //处理投加信息
  176. List<TXlhtAddRecord> tXlhtAddRecords = xlhtAddRecordMapper.selectTXlhtAddRecordList(TXlhtAddRecord.builder().timeBegin(timeBegin).timeEnd(timeEnd).build());
  177. result.put("8", tXlhtAddRecords.stream()
  178. .map(o -> new ChartBasic(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, o.getCreateTime()), o.getOneAmount()))
  179. .collect(Collectors.toList()));
  180. result.put("9", tXlhtAddRecords.stream()
  181. .map(o -> new ChartBasic(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, o.getCreateTime()), o.getTwoAmount()))
  182. .collect(Collectors.toList()));
  183. result.put("10", tXlhtAddRecords.stream()
  184. .map(o -> new ChartBasic(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, o.getCreateTime()), o.getRealOneAmount()))
  185. .collect(Collectors.toList()));
  186. result.put("11", tXlhtAddRecords.stream()
  187. .map(o -> new ChartBasic(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, o.getCreateTime()), o.getRealTwoAmount()))
  188. .collect(Collectors.toList()));
  189. return result;
  190. }
  191. @Override
  192. public HomeCountInfo homeCountInfo() {
  193. HomeCountInfo build = HomeCountInfo.builder().build();
  194. //获取化验状态
  195. TTbXie tTbXie = this.xieMapper.selectTTbXieByID(LONG_1);
  196. if(!Objects.isNull(tTbXie))
  197. build.setStatus(tTbXie.getJqrZhuantai());
  198. //获取累计运行天数 定义:只要某天有化验,那么就算累计加一天
  199. //2024年10月13日13:56:33 查询逻辑调整:不再查询化验记录,查询上报的数据 (T_SHUJU_1)表的数据
  200. build.setDays(this.zAssayMapper.selectDistinctDays());
  201. /*//获取累计化验轮次
  202. build.setCounts(this.zAssayMapper.selectCount());
  203. //获取累计化验次数
  204. build.setTotals(this.zAssayResultMapper.selectCount());*/
  205. //2024年10月13日13:56:14 化验次数和化验轮次
  206. int count = this.shuju1Mapper.selectCountDistinctAssayNo();
  207. build.setCounts(count);
  208. build.setTotals(count * INT_7);
  209. return build;
  210. }
  211. }