FrontServiceImpl.java 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  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.TShuju1Mapper;
  5. import com.xlht.xlhtproject.mapper.TTbXieMapper;
  6. import com.xlht.xlhtproject.mapper.ZAssayMapper;
  7. import com.xlht.xlhtproject.mapper.ZAssayResultMapper;
  8. import com.xlht.xlhtproject.service.IFrontService;
  9. import com.xlht.xlhtproject.utils.DateUtils;
  10. import com.xlht.xlhtproject.utils.StringUtils;
  11. import lombok.extern.slf4j.Slf4j;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.stereotype.Service;
  14. import java.math.RoundingMode;
  15. import java.util.*;
  16. import java.util.stream.Collectors;
  17. import static com.xlht.xlhtproject.enums.MyConstants.*;
  18. @Service
  19. @Slf4j
  20. public class FrontServiceImpl implements IFrontService {
  21. @Autowired
  22. private TShuju1Mapper shuju1Mapper;
  23. @Autowired
  24. private TTbXieMapper xieMapper;
  25. @Autowired
  26. private ZAssayMapper zAssayMapper;
  27. @Autowired
  28. private ZAssayResultMapper zAssayResultMapper;
  29. @Override
  30. public SmartAdd smartAddDataInfo() {
  31. return this.shuju1Mapper.getNewestData();
  32. }
  33. @Override
  34. public Map<String, List<ChartBasic>> smartAddCharList(int type, String timeBegin, String timeEnd) {
  35. // return Collections.emptyMap();
  36. //日期兜底处理
  37. Date nowDate = DateUtils.getNowDate();
  38. Date dayBefore7 = DateUtils.plusDate(-1, nowDate);
  39. //2024年09月13日17:02:59 支持前段自定义起止时间
  40. //先用日期获取当天和前一天的数据,如果获取不到,则提示错误信息
  41. String nowDateStr = StringUtils.isBlank(timeEnd) ? DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, nowDate) : timeEnd;
  42. String dayBefore1Str = StringUtils.isBlank(timeBegin) ? DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, dayBefore7) : timeBegin;
  43. //返回的对象
  44. Map<String, List<ChartBasic>> result = new HashMap<>();
  45. //获取筛选日期内的所有的数据
  46. List<TShuju1> tShuju1List = this.shuju1Mapper.selectTShuju1List(TShuju1.builder().timeBegin(dayBefore1Str).timeEnd(nowDateStr).build());
  47. List<ChartBasic> list = new ArrayList<>();
  48. //先判断类型,然后根据不同类型,查询不同的数据
  49. if(BusinessEnum.SmartAddMedicineReqEnum.JSLL.getCode() == type){
  50. //查询仪表即可
  51. list = tShuju1List.stream()
  52. .map(o -> new ChartBasic(o.getTIME(), Objects.isNull(o.getScJsZll()) ? null : o.getScJsZll().divide(BigDecimal_2, NUMBER_SCALE_4, RoundingMode.HALF_UP)))
  53. .collect(Collectors.toList());
  54. result.put(BusinessEnum.DataSourceEnum.YB.getCode(), list);
  55. }else if(BusinessEnum.SmartAddMedicineReqEnum.HY_1_XSY.getCode() == type){
  56. //查询化验室
  57. list = tShuju1List.stream()
  58. .map(o -> new ChartBasic(o.getTIME(), o.getJqr1HyXiaodan()))
  59. .collect(Collectors.toList());
  60. result.put(BusinessEnum.DataSourceEnum.HY.getCode(), list);
  61. //查询预测 锡林浩特没有预测数据
  62. // result.put(BusinessEnum.DataSourceEnum.YC.getCode(), list);
  63. }else if(BusinessEnum.SmartAddMedicineReqEnum.HY_2_XSY.getCode() == type){
  64. //查询化验室
  65. list = tShuju1List.stream()
  66. .map(o -> new ChartBasic(o.getTIME(), o.getJqr2HyXiaodan()))
  67. .collect(Collectors.toList());
  68. result.put(BusinessEnum.DataSourceEnum.HY.getCode(), list);
  69. //查询预测 锡林浩特没有预测数据
  70. // list =
  71. // result.put(BusinessEnum.DataSourceEnum.YC.getCode(), list);
  72. }else if(BusinessEnum.SmartAddMedicineReqEnum.QY_1_AD.getCode() == type){
  73. //查询化验室
  74. list = tShuju1List.stream()
  75. .map(o -> new ChartBasic(o.getTIME(), o.getJqr1QyAndan()))
  76. .collect(Collectors.toList());
  77. result.put(BusinessEnum.DataSourceEnum.HY.getCode(), list);
  78. }else if(BusinessEnum.SmartAddMedicineReqEnum.QY_2_AD.getCode() == type){
  79. //查询化验室
  80. list = tShuju1List.stream()
  81. .map(o -> new ChartBasic(o.getTIME(), o.getJqr2QyAndan()))
  82. .collect(Collectors.toList());
  83. result.put(BusinessEnum.DataSourceEnum.HY.getCode(), list);
  84. }else if(BusinessEnum.SmartAddMedicineReqEnum.JSCOD.getCode() == type){
  85. //查询仪表即可
  86. list = tShuju1List.stream()
  87. .map(o -> new ChartBasic(o.getTIME(), o.getScJsCod()))
  88. .collect(Collectors.toList());
  89. result.put(BusinessEnum.DataSourceEnum.YB.getCode(), list);
  90. //查询化验室
  91. list = tShuju1List.stream()
  92. .map(o -> new ChartBasic(o.getTIME(), o.getJqrSwcCod()))
  93. .collect(Collectors.toList());
  94. result.put(BusinessEnum.DataSourceEnum.HY.getCode(), list);
  95. }else if(BusinessEnum.SmartAddMedicineReqEnum.JSTN.getCode() == type){
  96. //查询仪表即可
  97. list = tShuju1List.stream()
  98. .map(o -> new ChartBasic(o.getTIME(), o.getScJsZongdan()))
  99. .collect(Collectors.toList());
  100. result.put(BusinessEnum.DataSourceEnum.YB.getCode(), list);
  101. }else if(BusinessEnum.SmartAddMedicineReqEnum.TYTJL.getCode() == type){
  102. //查询仪表即可 锡林浩特的没有
  103. /*list = tShuju1List.stream()
  104. .map(o -> new ChartBasic(o.getTIME(), o.get()))
  105. .collect(Collectors.toList());
  106. result.put(BusinessEnum.DataSourceEnum.YB.getCode(), list);*/
  107. }else{
  108. log.info("暂不支持的类型~~~");
  109. }
  110. return result;
  111. }
  112. @Override
  113. public HomeCountInfo homeCountInfo() {
  114. HomeCountInfo build = HomeCountInfo.builder().build();
  115. //获取化验状态
  116. TTbXie tTbXie = this.xieMapper.selectTTbXieByID(LONG_1);
  117. if(!Objects.isNull(tTbXie))
  118. build.setStatus(tTbXie.getJqrZhuantai());
  119. //获取累计运行天数 定义:只要某天有化验,那么就算累计加一天
  120. //2024年10月13日13:56:33 查询逻辑调整:不再查询化验记录,查询上报的数据 (T_SHUJU_1)表的数据
  121. build.setDays(this.zAssayMapper.selectDistinctDays());
  122. /*//获取累计化验轮次
  123. build.setCounts(this.zAssayMapper.selectCount());
  124. //获取累计化验次数
  125. build.setTotals(this.zAssayResultMapper.selectCount());*/
  126. //2024年10月13日13:56:14 化验次数和化验轮次
  127. int count = this.shuju1Mapper.selectCountDistinctAssayNo();
  128. build.setCounts(count);
  129. build.setTotals(count * INT_7);
  130. return build;
  131. }
  132. }