EnergyGasServiceImpl.java 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. package com.huimv.admin.service.impl;
  2. import cn.hutool.core.date.DateTime;
  3. import cn.hutool.core.date.DateUtil;
  4. import cn.hutool.core.util.ObjectUtil;
  5. import com.alibaba.fastjson.JSONArray;
  6. import com.alibaba.fastjson.JSONObject;
  7. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  8. import com.huimv.admin.common.utils.DataUill;
  9. import com.huimv.admin.common.utils.Result;
  10. import com.huimv.admin.common.utils.ResultCode;
  11. import com.huimv.admin.entity.BasePigpen;
  12. import com.huimv.admin.entity.EnergyData;
  13. import com.huimv.admin.entity.EnergyGas;
  14. import com.huimv.admin.entity.vo.EnergyDataVo;
  15. import com.huimv.admin.entity.vo.EnergyGasDataVo;
  16. import com.huimv.admin.mapper.BasePigpenMapper;
  17. import com.huimv.admin.mapper.EnergyDataMapper;
  18. import com.huimv.admin.mapper.EnergyGasMapper;
  19. import com.huimv.admin.service.IEnergyGasService;
  20. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.stereotype.Service;
  23. import javax.servlet.http.HttpServletRequest;
  24. import java.text.DecimalFormat;
  25. import java.util.*;
  26. /**
  27. * <p>
  28. * 服务实现类
  29. * </p>
  30. *
  31. * @author author
  32. * @since 2023-02-14
  33. */
  34. @Service
  35. public class EnergyGasServiceImpl extends ServiceImpl<EnergyGasMapper, EnergyGas> implements IEnergyGasService {
  36. @Autowired
  37. private EnergyGasMapper energyGasMapper;
  38. @Autowired
  39. private BasePigpenMapper basePigpenMapper;
  40. @Autowired
  41. private EnergyDataMapper dataMapper;
  42. @Override
  43. public Result listPigpen(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  44. String farmId = paramsMap.get("farmId");
  45. String id = paramsMap.get("id");
  46. JSONArray jsonArray = new JSONArray();
  47. QueryWrapper<BasePigpen> queryWrapper = new QueryWrapper<>();
  48. queryWrapper.eq("farm_id", farmId).eq("parent_id", id);
  49. List<BasePigpen> basePigpens = basePigpenMapper.selectList(queryWrapper);//得到所有的楼层
  50. for (BasePigpen basePigpen : basePigpens) {
  51. Float count = 0.00f;
  52. QueryWrapper<BasePigpen> basePigpenQueryWrapper = new QueryWrapper<>();
  53. basePigpenQueryWrapper.like("other2", basePigpen.getId()).eq("farm_id", farmId).eq("f_type", 3);
  54. List<BasePigpen> basePigpens1 = basePigpenMapper.selectList(basePigpenQueryWrapper);//得到所有的单元
  55. List<Integer> idList = new ArrayList<>();
  56. basePigpens1.forEach(item->{
  57. idList.add(item.getId());
  58. });
  59. JSONObject jsonObject = new JSONObject();
  60. QueryWrapper<EnergyData> queryWrapper1 = new QueryWrapper<>();
  61. queryWrapper1.in("unit_id", idList).eq("farm_id", farmId);
  62. DateTime dateTime = DateUtil.beginOfDay(new Date());
  63. queryWrapper1.ge("create_date", dateTime);
  64. queryWrapper1.select(" IFNULL(SUM(gas_value),'0') gasValue");
  65. EnergyData energyGas = dataMapper.selectOne(queryWrapper1);
  66. if (ObjectUtil.isNotEmpty(energyGas)) {
  67. count = count + Float.parseFloat(energyGas.getGasValue());
  68. } else {
  69. count = count + 0.00f;
  70. }
  71. DecimalFormat df = new DecimalFormat("#.00");
  72. jsonObject.put("value", df.format(count));
  73. jsonObject.put("buildName", basePigpen.getBuildName());
  74. jsonObject.put("id", basePigpen.getId());
  75. jsonArray.add(jsonObject);
  76. }
  77. return new Result(ResultCode.SUCCESS, jsonArray);
  78. }
  79. @Override
  80. public Result listData(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  81. String farmId = paramsMap.get("farmId");
  82. String type = paramsMap.get("type");
  83. String id = paramsMap.get("id");//楼层id
  84. String startTime = paramsMap.get("startTime");
  85. String endTime = paramsMap.get("endTime");
  86. List<EnergyGasDataVo> energyGasList = null;
  87. //默认显示本年
  88. if (type == null || type == "") {
  89. type = "3";
  90. }
  91. QueryWrapper<BasePigpen> pigpenQueryWrapper = new QueryWrapper<>();
  92. pigpenQueryWrapper.eq("farm_id", farmId).like("other2", id);
  93. List<BasePigpen> basePigpens = basePigpenMapper.selectList(pigpenQueryWrapper);//单元的集合
  94. List<Integer> unitIds = new ArrayList<>();
  95. basePigpens.forEach(item -> {
  96. unitIds.add(item.getId());
  97. });
  98. QueryWrapper<EnergyData> queryWrapper = new QueryWrapper<>();
  99. queryWrapper.eq("farm_id", farmId).in("unit_id", unitIds);
  100. //自定义查询
  101. if ("4".equals(type)) {
  102. startTime = startTime + " 00:00:00";
  103. endTime = endTime + " 23:59:59";
  104. queryWrapper.between("create_date", startTime, endTime);
  105. energyGasList = dataMapper.listDay(queryWrapper);
  106. }
  107. //全年
  108. else if ("3".equals(type)) {
  109. DateTime dateTime = DateUtil.beginOfYear(new Date());
  110. queryWrapper.ge("create_date", dateTime);
  111. List<EnergyGasDataVo> energyGasDataVos = dataMapper.listYear(queryWrapper);
  112. energyGasList = energyGasDataVos;
  113. }
  114. //本月
  115. else if ("2".equals(type)) {
  116. Date timesMonthmorning = DataUill.getTimesMonthmorning();
  117. queryWrapper.ge("create_date", timesMonthmorning);
  118. energyGasList = dataMapper.listDay(queryWrapper);
  119. }
  120. //本周
  121. else if ("1".equals(type)) {
  122. Calendar calendar = Calendar.getInstance();
  123. calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) - 7);
  124. queryWrapper.ge("create_date", calendar.getTime());
  125. List<EnergyGasDataVo> energyGasDataVos = dataMapper.listDay(queryWrapper);
  126. energyGasList = energyGasDataVos;
  127. }
  128. return new Result(ResultCode.SUCCESS, energyGasList);
  129. }
  130. }