2021与蓝度共同重构项目,服务端
liuhaonan
2022-06-01 a53950ffd0c8194e473d1357d633331eab376a64
bug修复
已修改3个文件
51 ■■■■■ 文件已修改
dao/src/main/java/com/sandu/ximon/dao/mapper/LightEnergyDataMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/resources/mapper/LightEnergyDataMapper.xml 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightEnergyDataService.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/java/com/sandu/ximon/dao/mapper/LightEnergyDataMapper.java
@@ -4,6 +4,8 @@
import com.sandu.ximon.dao.domain.LightEnergyData;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
 * @author Administrator
 * @description 针对表【light_energy_data(单灯任务能耗/节能率表)】的数据库操作Mapper
@@ -13,6 +15,7 @@
@Mapper
public interface LightEnergyDataMapper extends BaseMapper<LightEnergyData> {
    List<LightEnergyData> getEnergyList(Long userId, String format);
}
dao/src/main/resources/mapper/LightEnergyDataMapper.xml
@@ -5,18 +5,32 @@
<mapper namespace="com.sandu.ximon.dao.mapper.LightEnergyDataMapper">
    <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.LightEnergyData">
            <id property="id" column="id" jdbcType="BIGINT"/>
            <result property="taskId" column="task_id" jdbcType="BIGINT"/>
            <result property="ytdTime" column="ytd_time" jdbcType="VARCHAR"/>
            <result property="energy" column="energy" jdbcType="DOUBLE"/>
            <result property="energySaving" column="energy_saving" jdbcType="DOUBLE"/>
            <result property="userId" column="user_id" jdbcType="BIGINT"/>
            <result property="clientId" column="client_id" jdbcType="BIGINT"/>
        <id property="id" column="id" jdbcType="BIGINT"/>
        <result property="taskId" column="task_id" jdbcType="BIGINT"/>
        <result property="ytdTime" column="ytd_time" jdbcType="VARCHAR"/>
        <result property="energy" column="energy" jdbcType="DOUBLE"/>
        <result property="energySaving" column="energy_saving" jdbcType="DOUBLE"/>
        <result property="userId" column="user_id" jdbcType="BIGINT"/>
        <result property="clientId" column="client_id" jdbcType="BIGINT"/>
    </resultMap>
    <sql id="Base_Column_List">
        id,task_id,ytd_time,
        id
        ,task_id,ytd_time,
        energy,energy_saving,user_id,
        client_id
    </sql>
    <select id="getEnergyList" resultType="com.sandu.ximon.dao.domain.LightEnergyData">
        SELECT
        *
        FROM
        light_energy_data
        WHERE
        <if test="userId != null">
            (user_id = #{userId}
            OR client_id = #{userId})
            AND
        </if>
        ytd_time = #{format}
    </select>
</mapper>
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightEnergyDataService.java
@@ -27,31 +27,23 @@
@AllArgsConstructor
public class LightEnergyDataService extends BaseServiceImpl<LightEnergyDataMapper, LightEnergyData> {
    private final LightEnergyDataMapper lightEnergyDataMapper;
    public List energy(int flag) {
        Long userId = null;
        if (SecurityUtils.getClientId() != null) {
            userId = SecurityUtils.getUserId();
        }
        LambdaQueryWrapper<LightEnergyData> lightEnergyDataLambdaQueryWrapper = Wrappers.lambdaQuery(LightEnergyData.class);
        if (userId != null) {
            Long finalUserId = userId;
            lightEnergyDataLambdaQueryWrapper.eq(LightEnergyData::getUserId, finalUserId).or(w -> {
                w.eq(LightEnergyData::getClientId, finalUserId);
            });
        }
        LambdaQueryWrapper<LightEnergyData> lightEnergyDataLambdaQueryWrapper = new LambdaQueryWrapper<>();
        LocalDateTime now = LocalDateTime.now();
        List<Map> listResult = new ArrayList<>();
        for (int i = 1; i < 8; i++) {
            String format = now.minusDays(i).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
            lightEnergyDataLambdaQueryWrapper.eq(LightEnergyData::getYtdTime, format);
            List<LightEnergyData> list = list(lightEnergyDataLambdaQueryWrapper);
            //获取该天用户的能耗/节能率任务list
            List<LightEnergyData> list = lightEnergyDataMapper.getEnergyList(userId, format);
            BigDecimal[] energyAll = {new BigDecimal(0.00)};
            BigDecimal[] energySavingAll = {new BigDecimal(0.00)};
            list.forEach(