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(