|
@@ -1,20 +1,26 @@
|
|
|
package com.huimv.guowei.admin.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.huimv.guowei.admin.common.utils.DataUill;
|
|
|
import com.huimv.guowei.admin.common.utils.Result;
|
|
|
import com.huimv.guowei.admin.common.utils.ResultCode;
|
|
|
+import com.huimv.guowei.admin.entity.EnergyElectricity;
|
|
|
import com.huimv.guowei.admin.entity.EnergyWater;
|
|
|
+import com.huimv.guowei.admin.entity.EnvDeviceChip;
|
|
|
import com.huimv.guowei.admin.entity.vo.WaterLineVo;
|
|
|
import com.huimv.guowei.admin.mapper.EnergyWaterMapper;
|
|
|
+import com.huimv.guowei.admin.mapper.EnvDeviceChipMapper;
|
|
|
import com.huimv.guowei.admin.service.IEnergyWaterService;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.math.BigDecimal;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.math.RoundingMode;
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.LocalTime;
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -28,6 +34,8 @@ import java.util.Map;
|
|
|
public class EnergyWaterServiceImpl extends ServiceImpl<EnergyWaterMapper, EnergyWater> implements IEnergyWaterService {
|
|
|
@Resource
|
|
|
private EnergyWaterMapper energyWaterMapper;
|
|
|
+ @Resource
|
|
|
+ private EnvDeviceChipMapper envDeviceChipMapper;
|
|
|
|
|
|
@Override
|
|
|
public Result listWater(Map<String, String> paramsMap) {
|
|
@@ -70,27 +78,100 @@ public class EnergyWaterServiceImpl extends ServiceImpl<EnergyWaterMapper, Energ
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- //TODO 目前先写死 水线芯片号
|
|
|
public Result listWaterLine(Map<String, String> paramsMap) {
|
|
|
String type = paramsMap.get("type");
|
|
|
String farmId = paramsMap.get("farmId");
|
|
|
String startDate = paramsMap.get("startDate");
|
|
|
String endDate = paramsMap.get("endDate")+" 23:59:59";
|
|
|
+ List<EnvDeviceChip> deviceChipList = envDeviceChipMapper.selectList(new QueryWrapper<EnvDeviceChip>().eq("chip_type", 3));
|
|
|
|
|
|
+ List<String> chipCodeList = new ArrayList<>();
|
|
|
+ for (EnvDeviceChip envDeviceChip : deviceChipList) {
|
|
|
+ chipCodeList.add(envDeviceChip.getChipCode());
|
|
|
+ }
|
|
|
+ String chipCodes = String.join(",", chipCodeList);
|
|
|
List<WaterLineVo> waterLineList = new ArrayList<>();
|
|
|
+ chipCodes = "("+chipCodes+")";
|
|
|
if ("1".equals(type)){
|
|
|
- waterLineList = energyWaterMapper.listWaterLineDayDetail(farmId);
|
|
|
+ waterLineList = energyWaterMapper.listWaterLineDayDetail(farmId,chipCodeList,chipCodes);
|
|
|
}
|
|
|
if ("2".equals(type)){
|
|
|
- waterLineList = energyWaterMapper.listWaterLineWeekDetail(farmId);
|
|
|
+ waterLineList = energyWaterMapper.listWaterLineWeekDetail(farmId,chipCodeList,chipCodes);
|
|
|
}
|
|
|
if ("3".equals(type)){
|
|
|
- waterLineList = energyWaterMapper.listWaterLineMonthDetail(farmId);
|
|
|
+ waterLineList = energyWaterMapper.listWaterLineMonthDetail(farmId,chipCodeList,chipCodes);
|
|
|
}
|
|
|
if ("4".equals(type)){
|
|
|
- waterLineList = energyWaterMapper.listWaterLineCustomDetail(farmId,startDate,endDate);
|
|
|
+ waterLineList = energyWaterMapper.listWaterLineCustomDetail(farmId,chipCodeList,chipCodes,startDate,endDate);
|
|
|
}
|
|
|
|
|
|
return new Result(ResultCode.SUCCESS,waterLineList);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result getScreenWaterLine(Map<String, String> paramsMap) {
|
|
|
+ String unitId = paramsMap.get("unitId");
|
|
|
+ String farmId = paramsMap.get("farmId");
|
|
|
+ Date timesmorning = DataUill.getTimesmorning();
|
|
|
+ Date timesMonthmorning = DataUill.getTimesMonthmorning();
|
|
|
+
|
|
|
+ Map resultMap = new HashMap();
|
|
|
+ //今日
|
|
|
+ QueryWrapper<EnergyWater> queryWrapper1 = new QueryWrapper<>();
|
|
|
+ queryWrapper1.eq("unit_id",unitId).eq("farm_id",farmId).ge("create_date",timesmorning);
|
|
|
+ BigDecimal dayWater = energyWaterMapper.getWater(queryWrapper1);
|
|
|
+ //昨日
|
|
|
+ LocalDate yesterday = LocalDate.now().minusDays(1);
|
|
|
+ LocalDateTime startOfDay = yesterday.atStartOfDay();
|
|
|
+ LocalDateTime endOfDay = yesterday.atTime(LocalTime.MAX);
|
|
|
+ QueryWrapper<EnergyWater> queryWrapper2 = new QueryWrapper<>();
|
|
|
+ queryWrapper2.eq("unit_id",unitId).eq("farm_id",farmId).between("create_date",startOfDay,endOfDay);
|
|
|
+ BigDecimal lastDayWater = energyWaterMapper.getWater(queryWrapper2);
|
|
|
+ //日环比
|
|
|
+ BigDecimal dayGap = dayWater.subtract(lastDayWater).divide(lastDayWater).multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.UP);
|
|
|
+
|
|
|
+ //本月
|
|
|
+ QueryWrapper<EnergyWater> queryWrapper3 = new QueryWrapper<>();
|
|
|
+ queryWrapper3.eq("unit_id",unitId).eq("farm_id",farmId).ge("create_date",timesMonthmorning);
|
|
|
+ BigDecimal monthWater = energyWaterMapper.getWater(queryWrapper3);
|
|
|
+ //上月
|
|
|
+ Date lastMonthStartMorning = DataUill.getLastMonthStartMorning();
|
|
|
+ Date lastMonthEndNight = DataUill.getLastMonthEndNight();
|
|
|
+ QueryWrapper<EnergyWater> queryWrapper4 = new QueryWrapper<>();
|
|
|
+ queryWrapper4.eq("unit_id",unitId).eq("farm_id",farmId).between("create_date",lastMonthStartMorning,lastMonthEndNight);
|
|
|
+ BigDecimal lastMonthWater = energyWaterMapper.getWater(queryWrapper4);
|
|
|
+ //月环比
|
|
|
+ BigDecimal monthGap = monthWater.subtract(lastMonthWater).divide(lastMonthWater).multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.UP);
|
|
|
+
|
|
|
+ resultMap.put("dayWater",dayWater);
|
|
|
+ resultMap.put("dayWaterGap",dayGap+"%");
|
|
|
+ resultMap.put("monthWater",monthWater);
|
|
|
+ resultMap.put("monthWaterGap",monthGap+"%");
|
|
|
+ return new Result(ResultCode.SUCCESS,resultMap);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result listScreenWaterLine(Map<String, String> paramsMap) {
|
|
|
+ String farmId = paramsMap.get("farmId");
|
|
|
+ String type = paramsMap.get("type");
|
|
|
+
|
|
|
+ List<EnvDeviceChip> deviceChipList = envDeviceChipMapper.selectList(new QueryWrapper<EnvDeviceChip>().eq("chip_type", 3));
|
|
|
+
|
|
|
+ List<String> chipCodeList = new ArrayList<>();
|
|
|
+ for (EnvDeviceChip envDeviceChip : deviceChipList) {
|
|
|
+ chipCodeList.add(envDeviceChip.getChipCode());
|
|
|
+ }
|
|
|
+ String chipCodes = String.join(",", chipCodeList);
|
|
|
+ List<WaterLineVo> waterLineList;
|
|
|
+ chipCodes = "("+chipCodes+")";
|
|
|
+ //六个月
|
|
|
+ if ("1".equals(type)){
|
|
|
+ waterLineList = energyWaterMapper.listSixMonthWaterLine(farmId, chipCodeList,chipCodes);
|
|
|
+ }
|
|
|
+ //七天
|
|
|
+ else {
|
|
|
+ waterLineList = energyWaterMapper.listSevenDayWaterLine(farmId, chipCodeList,chipCodes);
|
|
|
+ }
|
|
|
+ return new Result(ResultCode.SUCCESS,waterLineList);
|
|
|
+ }
|
|
|
}
|