From 9c26c4f3c8ed2187fdb472280fc1d9182c327884 Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期三, 01 六月 2022 15:17:41 +0800
Subject: [PATCH] bug修复

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java |   81 ++++++++++++++++++++++++++++------------
 1 files changed, 57 insertions(+), 24 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java
index 00f5d6d..2b628fb 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java
+++ b/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
         }
     }
-
 }

--
Gitblit v1.9.3