Commit 2f1073b0 authored by Fuzy's avatar Fuzy

修正

parent 22416986
package com.ruoyi.system.controller;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.system.model.power.dto.PowerDisplayDto;
import com.ruoyi.system.service.PowerDisplayService;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 2024/7/30
*/
@RestController
@RequestMapping("/powerDisplay")
public class PowerDisplayController {
private PowerDisplayService powerDisplayService;
PowerDisplayController(PowerDisplayService powerDisplayService) {
this.powerDisplayService = powerDisplayService;
}
/**
* 将电力汇总表中需要在大屏展示的数据存入库
*
* @return
*/
@PostMapping("/peek")
public AjaxResult peek(@RequestBody List<PowerDisplayDto> powerDisplayDtoList) {
powerDisplayService.peek(powerDisplayDtoList);
return new AjaxResult(200, "成功");
}
}
package com.ruoyi.system.mapper;
import com.ruoyi.system.model.power.dao.PowerClassificationQueryDao;
import com.ruoyi.system.model.power.dto.PowerDisplayDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 2024/7/30
*/
@Mapper
public interface PowerDisplayMapper {
List<PowerClassificationQueryDao> selectClassificationToMid(@Param("id") String mindId);
void insert(List<PowerDisplayDto> list);
}
package com.ruoyi.system.model.power.dao;
import lombok.Data;
import java.util.Objects;
/**
* 2024/7/31
* 电力类别查询
*/
public class PowerClassificationQueryDao {
// 一级分类
private String levelOneClassification;
// 二级分类
private String levelTwoClassification;
// 项目名
private String classificationName;
public String getLevelOneClassification() {
return levelOneClassification;
}
public void setLevelOneClassification(String levelOneClassification) {
this.levelOneClassification = levelOneClassification;
}
public String getLevelTwoClassification() {
return levelTwoClassification;
}
public void setLevelTwoClassification(String levelTwoClassification) {
this.levelTwoClassification = levelTwoClassification;
}
public String getClassificationName() {
return classificationName;
}
public void setClassificationName(String classificationName) {
this.classificationName = classificationName;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
PowerClassificationQueryDao dao = (PowerClassificationQueryDao) o;
return Objects.equals(classificationName, dao.classificationName);
}
@Override
public int hashCode() {
return Objects.hash(classificationName);
}
}
package com.ruoyi.system.model.power.dto;
import lombok.Data;
/**
* 2024/7/30
* 电力展示保存
*/
@Data
public class PowerDisplayDto {
// 年月
private String dateColumn;
// 矿id
private String mindId;
// 项目名
private String classificationName;
// 总电量
private String powerTotal;
// 电量-尖
private String powerTip;
// 电量-峰
private String powerPeak;
// 电量-平
private String powerFlat;
// 电量-谷
private String powerValley;
// 总电费
private String electricityTotal;
// 电费-尖
private String electricityTip;
// 电费-峰
private String electricityPeak;
// 电费-平
private String electricityFlat;
// 电费-谷
private String electricityValley;
// 电价-尖
private String electricityPriceTip;
// 电价-峰
private String electricityPricePeak;
// 电价-平
private String electricityPriceFlat;
// 电价-谷
private String electricityPriceValley;
// 一级分类
private String levelOneClassification;
// 二级分类
private String levelTwoClassification;
}
package com.ruoyi.system.service;
import com.ruoyi.system.model.power.dto.PowerDisplayDto;
import java.util.List;
/**
* 2024/7/30
*/
public interface PowerDisplayService {
void peek(List<PowerDisplayDto> powerDisplayDtoList);
}
package com.ruoyi.system.service.impl;
import com.ruoyi.system.mapper.PowerDisplayMapper;
import com.ruoyi.system.model.power.dao.PowerClassificationQueryDao;
import com.ruoyi.system.model.power.dto.PowerDisplayDto;
import com.ruoyi.system.service.PowerDisplayService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* 2024/7/30
*/
@Service
public class PowerDisplayServiceImpl implements PowerDisplayService {
private PowerDisplayMapper powerDisplayMapper;
PowerDisplayServiceImpl(PowerDisplayMapper powerDisplayMapper) {
this.powerDisplayMapper = powerDisplayMapper;
}
@Override
public void peek(List<PowerDisplayDto> powerDisplayDtoList) {
String mindId = powerDisplayDtoList.get(0).getMindId();
List<PowerClassificationQueryDao> dao = powerDisplayMapper.selectClassificationToMid(mindId);
List<PowerDisplayDto> list = new ArrayList<>();
for (PowerDisplayDto powerDisplayDto : powerDisplayDtoList) {
List<PowerClassificationQueryDao> collect = dao.parallelStream()
.filter(a -> a.getClassificationName().equals(powerDisplayDto.getClassificationName()))
.collect(Collectors.toList());
if (collect.size() != 0) {
for (PowerClassificationQueryDao queryDao : collect) {
PowerDisplayDto dto = new PowerDisplayDto();
BeanUtils.copyProperties(powerDisplayDto, dto);
dto.setLevelOneClassification(queryDao.getLevelOneClassification());
dto.setLevelTwoClassification(queryDao.getLevelTwoClassification());
list.add(dto);
}
} else {
powerDisplayDto.setLevelOneClassification("其他");
list.add(powerDisplayDto);
}
}
list.parallelStream()
.forEach(v -> {
v.setElectricityTip(v.getElectricityPriceTip() == null || "".equals(v.getElectricityPriceTip()) ? null : new BigDecimal(v.getPowerTip() == null || v.getPowerTip().equals("") ? "0" : v.getPowerTip()).multiply(new BigDecimal(v.getElectricityPriceTip())) + "");
v.setElectricityPeak(v.getElectricityPricePeak() == null || "".equals(v.getElectricityPricePeak()) ? null : new BigDecimal(v.getPowerPeak() == null || v.getPowerPeak().equals("") ? "0" : v.getPowerPeak()).multiply(new BigDecimal(v.getElectricityPricePeak())) + "");
v.setElectricityFlat(v.getElectricityPriceFlat() == null || "".equals(v.getElectricityPriceFlat()) ? null : new BigDecimal(v.getPowerFlat() == null || v.getPowerFlat().equals("") ? "0" : v.getPowerFlat()).multiply(new BigDecimal(v.getElectricityPriceFlat())) + "");
v.setElectricityValley(v.getElectricityPriceValley() == null || "".equals(v.getElectricityPriceValley()) ? null : new BigDecimal(v.getPowerValley() == null || v.getPowerValley().equals("") ? "0" : v.getPowerValley()).multiply(new BigDecimal(v.getElectricityPriceValley())) + "");
v.setElectricityTotal(new BigDecimal(v.getElectricityTip() == null || v.getElectricityTip().equals("") ? "0" : v.getElectricityTip()).add(new BigDecimal(v.getElectricityPeak() == null || v.getElectricityPeak().equals("") ? "0" : v.getElectricityPricePeak())).add(new BigDecimal(v.getElectricityFlat() == null || v.getElectricityFlat().equals("") ? "0" : v.getElectricityFlat())).add(new BigDecimal(v.getElectricityValley() == null || v.getElectricityValley().equals("") ? "0" : v.getElectricityValley())) + "");
});
powerDisplayMapper.insert(list);
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.PowerDisplayMapper">
<insert id="insert">
insert into `ry-vue`.power_large_screen_display (date_column, mind_id, level_one_classification,
level_two_classification, classification_name,
power_total, power_tip, power_peak, power_flat, power_valley,
electricity_total, electricity_tip, electricity_peak, electricity_flat, electricity_valley,
electricity_price_tip, electricity_price_peak, electricity_price_flat, electricity_price_valley)
values
<foreach collection="list" item="item" separator=",">
(#{item.dateColumn}, #{item.mindId}, #{item.levelOneClassification}, #{item.levelTwoClassification},
#{item.classificationName}
, #{item.powerTotal}, #{item.powerTip}, #{item.powerPeak}, #{item.powerFlat}, #{item.powerValley}
, #{item.electricityTotal}, #{item.electricityTip}, #{item.electricityPeak}, #{item.electricityFlat},
#{item.electricityValley}
, #{item.electricityPriceTip}, #{item.electricityPricePeak}, #{item.electricityPriceFlat},
#{item.electricityPriceValley})
</foreach>
</insert>
<select id="selectClassificationToMid"
resultType="com.ruoyi.system.model.power.dao.PowerClassificationQueryDao">
select a.level_one_classification levelOneClassification,
a.level_two_classification levelTwoClassification,
a.classification_name classificationName
from `ry-vue`.power_classification_query a
where a.mind_id = #{id}
and a.whether_it_is_enabled = '0';
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment