|
@@ -12,12 +12,15 @@
|
|
|
*/
|
|
|
package vip.xiaonuo.modular.energy.energyElectricity.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import vip.xiaonuo.common.exception.CommonException;
|
|
|
import vip.xiaonuo.modular.base.baseConfig.entity.BaseConfig;
|
|
|
import vip.xiaonuo.modular.base.baseConfig.mapper.BaseConfigMapper;
|
|
|
+import vip.xiaonuo.modular.base.pigpen.entity.BasePigpen;
|
|
|
import vip.xiaonuo.modular.base.pigpen.mapper.BasePigpenMapper;
|
|
|
import vip.xiaonuo.modular.energy.energyElectricity.entity.EnergyElectricity;
|
|
|
import vip.xiaonuo.modular.energy.energyElectricity.entity.vo.*;
|
|
@@ -27,6 +30,8 @@ import vip.xiaonuo.modular.energy.energyElectricity.param.EnergyElectricityTopPa
|
|
|
import vip.xiaonuo.modular.energy.energyElectricity.service.EnergyElectricityService;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.math.MathContext;
|
|
|
+import java.math.RoundingMode;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -53,7 +58,7 @@ public class EnergyElectricityServiceImpl extends ServiceImpl<EnergyElectricityM
|
|
|
public EnergyElectricityProportionVo getProportion(String orgId, String type) {
|
|
|
EnergyElectricityProportionVo electricityProportion = new EnergyElectricityProportionVo();
|
|
|
BigDecimal thisTotal,lastTotal;
|
|
|
- BigDecimal qoq = BigDecimal.valueOf(100);
|
|
|
+ BigDecimal qoq = BigDecimal.ZERO;
|
|
|
String parentId = baseConfigMapper.selectOne(new QueryWrapper<BaseConfig>().eq("config_name", "栋舍阶段").eq("parent_id", 0)).getId();
|
|
|
List<BaseConfig> buildStage = baseConfigMapper.selectList(new QueryWrapper<BaseConfig>().eq("parent_id", parentId).orderByAsc("sort_code"));
|
|
|
List<String> stages = buildStage.stream().map(config -> config.getConfigName()).collect(Collectors.toList());
|
|
@@ -79,9 +84,12 @@ public class EnergyElectricityServiceImpl extends ServiceImpl<EnergyElectricityM
|
|
|
rateList.add(rate);
|
|
|
}
|
|
|
}
|
|
|
- if (lastTotal.compareTo(BigDecimal.ZERO) != 0){
|
|
|
- qoq = thisTotal.subtract(lastTotal).divide(lastTotal).multiply(BigDecimal.valueOf(100));
|
|
|
- if (thisTotal.compareTo(BigDecimal.ZERO) == 0){
|
|
|
+ if (lastTotal.compareTo(BigDecimal.ZERO) != 0) {
|
|
|
+ qoq = thisTotal.subtract(lastTotal)
|
|
|
+ .divide(lastTotal, MathContext.DECIMAL64)
|
|
|
+ .multiply(BigDecimal.valueOf(100))
|
|
|
+ .setScale(2, RoundingMode.HALF_UP);
|
|
|
+ if (thisTotal.compareTo(BigDecimal.ZERO) == 0) {
|
|
|
qoq = BigDecimal.valueOf(0);
|
|
|
}
|
|
|
}
|
|
@@ -95,21 +103,53 @@ public class EnergyElectricityServiceImpl extends ServiceImpl<EnergyElectricityM
|
|
|
public EnergyElectricityTrendVo listTrend(EnergyElectricityListParm energyElectricityListParm) {
|
|
|
String type = energyElectricityListParm.getType();
|
|
|
String pigpenId = energyElectricityListParm.getPigpenId();
|
|
|
- String location = basePigpenMapper.selectById(pigpenId).getFullName();
|
|
|
+ String orgId = energyElectricityListParm.getOrgId();
|
|
|
+ String location;
|
|
|
+ List<String> pigpenList = new ArrayList<>();
|
|
|
+ if (ObjectUtil.isNotEmpty(pigpenId)){
|
|
|
+ BasePigpen basePigpen = basePigpenMapper.selectById(pigpenId);
|
|
|
+ location = basePigpen.getFullName();
|
|
|
+ Integer pigpenType = basePigpen.getType();
|
|
|
+ switch (pigpenType){
|
|
|
+ case 0:
|
|
|
+ List<BasePigpen> basePigpens = basePigpenMapper.selectList(new QueryWrapper<BasePigpen>().lambda().eq(BasePigpen::getParentId, pigpenId));
|
|
|
+ if (ObjectUtil.isNotEmpty(basePigpens)){
|
|
|
+ List<String> collect = basePigpens.stream().map(basePigpen1 -> basePigpen1.getId()).collect(Collectors.toList());
|
|
|
+ List<BasePigpen> basePigpens1 = basePigpenMapper.selectList(new QueryWrapper<BasePigpen>().lambda().in(BasePigpen::getParentId, collect));
|
|
|
+ if (ObjectUtil.isNotEmpty(basePigpens1)){
|
|
|
+ pigpenList.addAll(basePigpens1.stream().map(basePigpen1 -> basePigpen1.getId()).collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ List<BasePigpen> basePigpens1 = basePigpenMapper.selectList(new QueryWrapper<BasePigpen>().lambda().eq(BasePigpen::getParentId, pigpenId));
|
|
|
+ if (ObjectUtil.isNotEmpty(basePigpens1)){
|
|
|
+ pigpenList.addAll(basePigpens1.stream().map(basePigpen1 -> basePigpen1.getId()).collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ pigpenList.add(pigpenId);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ throw new CommonException("pigpenId参数错误!");
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ location = "全场";
|
|
|
+ }
|
|
|
EnergyElectricityTrendVo electricityTrend = new EnergyElectricityTrendVo();
|
|
|
List<EnergyElectricityListVo> energyElectricityList;
|
|
|
if (type.equals("0")){
|
|
|
- energyElectricityList = energyElectricityMapper.listToday(pigpenId);
|
|
|
+ energyElectricityList = energyElectricityMapper.listToday(pigpenList,orgId);
|
|
|
}else if (type.equals("1")){
|
|
|
- energyElectricityList = energyElectricityMapper.listWeek(pigpenId);
|
|
|
+ energyElectricityList = energyElectricityMapper.listWeek(pigpenList,orgId);
|
|
|
}else if (type.equals("2")){
|
|
|
- energyElectricityList = energyElectricityMapper.listMonth(pigpenId);
|
|
|
+ energyElectricityList = energyElectricityMapper.listMonth(pigpenList,orgId);
|
|
|
}else if (type.equals("3")){
|
|
|
String startDate = energyElectricityListParm.getStartDate() + " 00:00:00";
|
|
|
String endDate = energyElectricityListParm.getEndDate() + " 23:59:59";
|
|
|
- energyElectricityList = energyElectricityMapper.listCustom(pigpenId,startDate,endDate);
|
|
|
+ energyElectricityList = energyElectricityMapper.listCustom(pigpenList,startDate,endDate,orgId);
|
|
|
}else {
|
|
|
- energyElectricityList = energyElectricityMapper.listSevenDay(pigpenId);
|
|
|
+ energyElectricityList = energyElectricityMapper.listSevenDay(pigpenList,orgId);
|
|
|
}
|
|
|
electricityTrend.setLocation(location);
|
|
|
electricityTrend.setEnergyElectricityList(energyElectricityList);
|
|
@@ -133,4 +173,10 @@ public class EnergyElectricityServiceImpl extends ServiceImpl<EnergyElectricityM
|
|
|
}
|
|
|
return resultList;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<EnergyScreenVo> listScreenEnergy(String orgId) {
|
|
|
+ List<EnergyScreenVo> energyVoList = energyElectricityMapper.listScreenEnergy(orgId);
|
|
|
+ return energyVoList;
|
|
|
+ }
|
|
|
}
|