| dao/src/main/java/com/sandu/ximon/dao/bo/LightTaskPoleRelationBo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| dao/src/main/java/com/sandu/ximon/dao/domain/LightEnergyData.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| dao/src/main/java/com/sandu/ximon/dao/mapper/LightTaskPoleRelationMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| dao/src/main/resources/mapper/LightEnergyDataMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| dao/src/main/resources/mapper/LightTaskPoleRelationMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightEnergyDataService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
dao/src/main/java/com/sandu/ximon/dao/bo/LightTaskPoleRelationBo.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,56 @@ package com.sandu.ximon.dao.bo; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.sandu.ximon.dao.domain.LightTaskPoleRelation; import lombok.Data; import java.time.LocalDateTime; @Data public class LightTaskPoleRelationBo extends LightTaskPoleRelation { /** * ç¨æ·ID */ private Long userId; /** * ä¸çº§å®¢æ·ID */ private Long clientId; /** * 以ä¸ä¸ºä»»å¡ä¸çæ°æ® */ /** * ä»»å¡åç§° */ private String taskName; /** * ææå ï¼ä½è¿ç®ä¿åï¼1代表ææä¸ï¼2ææäºï¼4ææä¸ï¼8ææåï¼16ææäºï¼32ææå ï¼64æææ¥ */ private Integer week; /** * å¼ç¯å½ä»¤ */ private String openOrder; /** * å ³éç¯å½ä»¤ */ private String closeOrder; /** * ç¯æ§å½ä»¤ */ private String controlOrder; /** * æ§ç¯å°å */ private String lightAdress = "FFFF"; } dao/src/main/java/com/sandu/ximon/dao/domain/LightEnergyData.java
@@ -44,6 +44,11 @@ private BigDecimal energySaving; /** * ç¯æid */ private Long poleId; /** * ç¨æ·id */ private Long userId; dao/src/main/java/com/sandu/ximon/dao/mapper/LightTaskPoleRelationMapper.java
@@ -1,5 +1,6 @@ package com.sandu.ximon.dao.mapper; import com.sandu.ximon.dao.bo.LightTaskPoleRelationBo; import com.sandu.ximon.dao.bo.LightTaskStatusAndPole; import com.sandu.ximon.dao.domain.LightTaskPoleRelation; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -15,6 +16,8 @@ List<LightTaskStatusAndPole> listPoleAndStatusIdByTaskId(Long taskId); List<LightTaskPoleRelationBo> test(List<Long> taskIdList); } dao/src/main/resources/mapper/LightEnergyDataMapper.xml
@@ -10,6 +10,7 @@ <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="poleId" column="pole_id" jdbcType="BIGINT"/> <result property="userId" column="user_id" jdbcType="BIGINT"/> <result property="clientId" column="client_id" jdbcType="BIGINT"/> </resultMap> dao/src/main/resources/mapper/LightTaskPoleRelationMapper.xml
@@ -5,27 +5,47 @@ <mapper namespace="com.sandu.ximon.dao.mapper.LightTaskPoleRelationMapper"> <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.LightTaskPoleRelation"> <id property="id" column="id" jdbcType="BIGINT"/> <result property="taskId" column="task_id" jdbcType="BIGINT"/> <result property="poleId" column="pole_id" jdbcType="BIGINT"/> <result property="issueStatus" column="issue_status" jdbcType="INTEGER"/> <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/> <id property="id" column="id" jdbcType="BIGINT"/> <result property="taskId" column="task_id" jdbcType="BIGINT"/> <result property="poleId" column="pole_id" jdbcType="BIGINT"/> <result property="issueStatus" column="issue_status" jdbcType="INTEGER"/> <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/> </resultMap> <sql id="Base_Column_List"> id,task_id,pole_id, id ,task_id,pole_id, issue_status,create_time,update_time </sql> <select id="listPoleAndStatusIdByTaskId" resultType="com.sandu.ximon.dao.bo.LightTaskStatusAndPole"> SELECT t1.issue_status, t2.* t1.issue_status, t2.* FROM light_task_pole_relation t1 LEFT JOIN pole t2 ON t1.pole_id = t2.id light_task_pole_relation t1 LEFT JOIN pole t2 ON t1.pole_id = t2.id <where> AND t1.task_id = #{taskId} </where> </select> <select id="test" resultType="com.sandu.ximon.dao.bo.LightTaskPoleRelationBo"> SELECT t1.*, t2.user_id, t2.client_id, t3.task_name, t3.week, t3.open_order, t3.close_order, t3.control_order, t3.light_adress FROM light_task_pole_relation t1 LEFT JOIN pole t2 ON t1.pole_id = t2.id LEFT JOIN light_task t3 ON t3.task_id = t1.task_id <where> t1.issue_status=0 AND t1.task_id IN <foreach collection="taskIdList" open="(" close=")" separator="," item="task_id"> #{task_id} </foreach> </where> </select> </mapper> ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightEnergyDataService.java
@@ -1,12 +1,9 @@ package com.sandu.ximon.admin.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.sandu.common.service.impl.BaseServiceImpl; import com.sandu.common.util.SpringContextHolder; import com.sandu.ximon.admin.security.SecurityUtils; import com.sandu.ximon.dao.domain.LightEnergyData; import com.sandu.ximon.dao.domain.LightTaskPoleRelation; import com.sandu.ximon.dao.mapper.LightEnergyDataMapper; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; @@ -48,32 +45,9 @@ BigDecimal[] energySavingAll = {new BigDecimal(0.00)}; list.forEach( bean -> { int lightSize = SpringContextHolder.getBean(LightTaskPoleRelationService.class) .list(Wrappers.lambdaQuery(LightTaskPoleRelation.class) .eq(LightTaskPoleRelation::getTaskId, bean.getTaskId()).eq(LightTaskPoleRelation::getIssueStatus, 0)).size(); energyAll[0] = energyAll[0].add(bean.getEnergy()); energySavingAll[0] = energySavingAll[0].add(bean.getEnergySaving()); BigDecimal energy; BigDecimal energySaving; if (lightSize == 0) { energy = new BigDecimal(0); energySaving = new BigDecimal(1); } else { if (bean.getEnergy().equals(0.00)) { energy = new BigDecimal(0); energySaving = new BigDecimal(1); } else if (bean.getEnergySaving().equals(0.00)) { energy = new BigDecimal(0); energySaving = new BigDecimal(1); } else { energy = bean.getEnergy().multiply(new BigDecimal(lightSize)).setScale(2, BigDecimal.ROUND_HALF_UP); energySaving = bean.getEnergySaving().divide(new BigDecimal(lightSize)).setScale(2, BigDecimal.ROUND_HALF_UP); } } energyAll[0] = energyAll[0].add(energy); energySavingAll[0] = energySavingAll[0].add(energySaving); }); Map map = new LinkedHashMap(); ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java
@@ -29,6 +29,7 @@ import com.sandu.ximon.admin.security.SecurityUtils; import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils; import com.sandu.ximon.admin.utils.TaskOrderUtil; import com.sandu.ximon.dao.bo.LightTaskPoleRelationBo; import com.sandu.ximon.dao.bo.LightTaskStatusAndPole; import com.sandu.ximon.dao.domain.LightEnergyData; import com.sandu.ximon.dao.domain.LightTask; @@ -37,6 +38,7 @@ import com.sandu.ximon.dao.enums.DeviceRespStatusEnums; import com.sandu.ximon.dao.enums.OrderByEnums; import com.sandu.ximon.dao.mapper.LightTaskMapper; import com.sandu.ximon.dao.mapper.LightTaskPoleRelationMapper; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; @@ -665,35 +667,66 @@ */ public void energy() { List<LightTask> lightTasks = list(Wrappers.lambdaQuery(LightTask.class)); for (LightTask lightTask : lightTasks) { List<LightTaskPoleRelation> list = SpringContextHolder.getBean(LightTaskPoleRelationService.class).list(Wrappers.lambdaQuery(LightTaskPoleRelation.class).eq(LightTaskPoleRelation::getTaskId, lightTask.getTaskId())); LightTaskDto lightTaskDto = new LightTaskDto(); BeanUtils.copyProperties(lightTask, lightTaskDto); lightTaskDto.setWeekList(TaskOrderUtil.parseLightWeek2List(lightTask.getWeek())); List<Long> taskIdList = new ArrayList<>(); for (LightTask bean : lightTasks) { taskIdList.add(bean.getTaskId()); } if (taskIdList.size() != 0) { List<LightTaskPoleRelationBo> list = SpringContextHolder.getBean(LightTaskPoleRelationMapper.class).test(taskIdList); for (LightTaskPoleRelationBo bean : list) { BigDecimal energySaving = SpringContextHolder.getBean(LightService.class).jisuan(lightTaskDto); BigDecimal energy = SpringContextHolder.getBean(LightService.class).jisuanEnergy(lightTaskDto); LightTaskDto lightTaskDto = new LightTaskDto(); //TODO BeanUtils.copyProperties(bean, lightTaskDto); lightTaskDto.setWeekList(TaskOrderUtil.parseLightWeek2List(bean.getWeek())); BigDecimal energySaving; BigDecimal energy; //è·åæ¨å¤©çæææ° LocalDateTime now = LocalDateTime.now(); LocalDateTime yesterday = now.minusDays(1); int week = yesterday.getDayOfWeek().getValue(); if (!list.isEmpty()) { //æç»å®ç¯æ è¿è¡è®¡ç® if (lightTaskDto.getWeekList().contains(week)) { //ä»»å¡æè¯¥æææ° è®¡ç® energySaving = SpringContextHolder.getBean(LightService.class).jisuan(lightTaskDto); energy = SpringContextHolder.getBean(LightService.class).jisuanEnergy(lightTaskDto); } else { //任塿 è¯¥æææ° è¿å energySaving = new BigDecimal(1); energy = BigDecimal.ZERO; } for (int i = 0; i < list.size(); i++) { LightTaskPoleRelation relation = list.get(i); if (relation.getIssueStatus() != 0) { //ä»»å¡ä¸å失败 è¿å energySaving = new BigDecimal(1); energy = BigDecimal.ZERO; } } } else { //æªç»å®ç¯æ ç´æ¥è¿å energySaving = new BigDecimal(1); energy = BigDecimal.ZERO; } //è·åæ¨å¤©çæææ° LocalDateTime now = LocalDateTime.now(); LocalDateTime yesterday = now.minusDays(1); /** * å卿°æ® */ LightEnergyData lightEnergyData = new LightEnergyData(); lightEnergyData.setTaskId(bean.getTaskId()); lightEnergyData.setYtdTime(yesterday.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); lightEnergyData.setEnergySaving(energySaving); lightEnergyData.setEnergy(energy); lightEnergyData.setUserId(bean.getUserId()); lightEnergyData.setClientId(bean.getClientId()); lightEnergyData.setPoleId(bean.getPoleId()); //ä¿åè½èæ°æ®å°æ°æ®åº lightEnergyDataService.save(lightEnergyData); } LightEnergyData lightEnergyData = new LightEnergyData(); lightEnergyData.setTaskId(lightTask.getTaskId()); lightEnergyData.setYtdTime(yesterday.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); lightEnergyData.setEnergySaving(energySaving); lightEnergyData.setEnergy(energy); lightEnergyData.setUserId(lightTask.getUserId()); lightEnergyData.setClientId(lightTask.getClientId()); //ä¿åè½èæ°æ®å°æ°æ®åº lightEnergyDataService.save(lightEnergyData); System.out.println(lightEnergyData + "---------------"); //ID ä»»å¡id } } }