ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LightController.java
@@ -9,6 +9,7 @@ import com.sandu.ximon.admin.param.LightPowerSettingParam; import com.sandu.ximon.admin.param.LightRemarkParam; import com.sandu.ximon.admin.security.PermissionConfig; import com.sandu.ximon.admin.service.LightEnergyDataService; import com.sandu.ximon.admin.service.LightReportDataService; import com.sandu.ximon.admin.service.LightReportErrorService; import com.sandu.ximon.admin.service.LightService; @@ -36,6 +37,7 @@ @RequestMapping("/v1/light") public class LightController { private final LightEnergyDataService lightEnergyDataService; private final LightService lightService; private final LightReportDataService lightReportDataService; private final LightReportErrorService lightReportErrorService; @@ -135,12 +137,14 @@ @PostMapping("/Energy") public ResponseVO<Object> Energy() { return ResponseUtil.success(lightService.controlEnergy()); return ResponseUtil.success(lightEnergyDataService.energy(0)); // return ResponseUtil.success(lightService.controlEnergy()); } @PostMapping("/EnergySaving") public ResponseVO<Object> controlEnergySaving() { return ResponseUtil.success(lightService.controlEnergySaving()); return ResponseUtil.success(lightEnergyDataService.energy(1)); // return ResponseUtil.success(lightService.controlEnergySaving()); } ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LightTaskController.java
@@ -8,6 +8,7 @@ import com.sandu.ximon.admin.param.LightTaskIssueParam; import com.sandu.ximon.admin.param.LightTaskParam; import com.sandu.ximon.admin.security.PermissionConfig; import com.sandu.ximon.admin.service.LightEnergyDataService; import com.sandu.ximon.admin.service.LightTaskService; import com.sandu.ximon.dao.enums.MenuEnum; import lombok.AllArgsConstructor; @@ -26,7 +27,7 @@ @AllArgsConstructor @RequestMapping("/v1/light/task") public class LightTaskController { private final LightEnergyDataService lightEnergyDataService; private final LightTaskService lightTaskService; private PermissionConfig permissionConfig; @@ -109,8 +110,10 @@ @PostMapping("/energy") public ResponseVO<Object> energy() { lightTaskService.energy(); return ResponseUtil.success("true"); return ResponseUtil.success("lightEnergyDataService.energy(0)"); } ximon-admin/src/main/java/com/sandu/ximon/admin/schedule/LightEnergySchedule.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,27 @@ package com.sandu.ximon.admin.schedule; import com.sandu.ximon.admin.service.LightTaskService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; /** * @author ZZQ * @date 2022/5/20 16:46 */ @Component @Slf4j @AllArgsConstructor @EnableScheduling public class LightEnergySchedule { private final LightTaskService lightTaskService; // @Scheduled(cron = "0 0/2 * * * ? ") public void UserSubjectRefund() { lightTaskService.energy(); } } ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightEnergyDataService.java
@@ -1,10 +1,23 @@ 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; import java.math.BigDecimal; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; /** * @author LHN @@ -15,4 +28,75 @@ public class LightEnergyDataService extends BaseServiceImpl<LightEnergyDataMapper, LightEnergyData> { 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); }); } 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); BigDecimal[] energyAll = {new BigDecimal(0.00)}; 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(); 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(); //0为è½èï¼1为èè½ç if (flag == 0) { map.put("time", format); map.put("value", energyAll[0]); listResult.add(map); } else { map.put("time", format); map.put("value", energySavingAll[0]); listResult.add(map); } } return listResult; } } ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java
@@ -610,7 +610,6 @@ /** * èè½ç计ç®å¼å§ */ //TODO //è·åæ¨å¤©çæææ° LocalDateTime now = LocalDateTime.now(); LocalDateTime yesterday = now.minusDays(1); @@ -619,10 +618,10 @@ //夿Task.getWeekList()æ¯å¦å 嫿¨å¤©çæææ° ä¸å å«ç´æ¥è¿å0 ä¸è¿è¡è®¡ç® if (Task.getWeekList() != null && !Task.getWeekList().isEmpty()) { if (!Task.getWeekList().contains(week)) { return BigDecimal.ZERO; return new BigDecimal(1); } } else { return BigDecimal.ZERO; return new BigDecimal(1); } @@ -727,7 +726,7 @@ /** * ä¸å¤©çè½è * * @param list * @param * @return */ public BigDecimal jisuanEnergy(LightTaskDto Task) { @@ -870,7 +869,7 @@ // BigDecimal hour = BigDecimal.valueOf((v2.getHour() - v1.getHour())); // BigDecimal hour; if (v1.getBrightness() == 0) { return BigDecimal.ZERO; return new BigDecimal(1); } double hour; double min; ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java
@@ -538,7 +538,9 @@ } //计ç®åçåè½è /** * 计ç®åçåè½è */ public void energy() { List<LightTask> lightTasks = list(Wrappers.lambdaQuery(LightTask.class)); for (LightTask lightTask : lightTasks) { @@ -565,6 +567,9 @@ lightEnergyData.setUserId(lightTask.getUserId()); lightEnergyData.setClientId(lightTask.getClientId()); //ä¿åè½èæ°æ®å°æ°æ®åº lightEnergyDataService.save(lightEnergyData); System.out.println(lightEnergyData + "---------------"); //ID ä»»å¡id }