From 23fd3f969d2e35c40742b6cd69a24ddf0195732a Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期三, 29 六月 2022 15:25:07 +0800
Subject: [PATCH] fix

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java |  155 +++++++++++++++++++++++++++++----------------------
 1 files changed, 88 insertions(+), 67 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..52fea61 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;
@@ -300,41 +302,10 @@
          * 涓嬪彂璺伅浠诲姟鏃ュ織璁板綍缁撴潫
          */
 
-//        if (oldPoleFail.isEmpty() && closePoleFail.isEmpty()) {
-//            //鍏ㄩ儴鎴愬姛
-//            return 0;
-//        } else if (!closeLight.isEmpty() || !oldPoleFail.isEmpty()) {
-//            //鍏崇伅澶辫触  鎴栬�呰鐩栦换鍔″け璐�
-//            return 1;
-//        } else if (newPoleSuccess.isEmpty() && oldPoleSuccess.isEmpty() && closeSuccess.isEmpty()) {
-//            //缂栬緫鍏ㄩ儴澶辫触
-//            return 2;
-//        } else {
-//            //鍏朵粬鎯呭喌
-//            return -1;
-//        }
-
-//        if (newPoleFail.isEmpty() && oldPoleFail.isEmpty() && closePoleFail.isEmpty()) {
-//            //缂栬緫鎴愬姛
-//            return 0;
-//        } else if (newPoleSuccess.isEmpty() && oldPoleSuccess.isEmpty() && closePoleSuccess.isEmpty()) {
-//            //缂栬緫澶辫触
-//            return 1;
-//        } else {
-//            //鍦ㄦ棫浠诲姟鍩虹涓婄紪杈�
-//            if (lightTask.getTaskId().equals(newLightTask.getTaskId())) {
-//                //鍙湁鏃т换鍔�
-//                return 2;
-//            }  else {
-//                //鏈夋柊浠诲姟锛屾湁鏃т换鍔�
-//                return 3;
-//            }
-//        }
-
         if (newPoleFail.isEmpty() && oldPoleFail.isEmpty() && closePoleFail.isEmpty()) {
             return "缂栬緫鎴愬姛";
         } else if (newPoleSuccess.isEmpty() && oldPoleSuccess.isEmpty() && closePoleSuccess.isEmpty()) {
-            throw new BusinessException("缂栬緫澶辫触");
+            throw new BusinessException("缂栬緫澶辫触,璇锋鏌ョ紪杈戠殑璁惧鏄惁鍦ㄧ嚎!");
         } else if (!closePoleFail.isEmpty() || !oldPoleFail.isEmpty()) {
             return "鍘熶换鍔′腑瀛樺湪涓嬪彂寮傚父锛屽師浠诲姟淇濈暀锛屽垱寤烘柊浠诲姟杩涜淇濆瓨";
         } else if (!newPoleFail.isEmpty()) {
@@ -362,16 +333,6 @@
     }
 
     public List<LightTaskDto> listLightTask(BaseConditionVO conditionVO, String keyword, Integer order, Integer seq) {
-        LambdaQueryWrapper<LightTask> wrapper = Wrappers.lambdaQuery(LightTask.class);
-        if (StrUtil.isNotBlank(keyword)) {
-            wrapper.like(LightTask::getTaskName, keyword);
-        }
-        //涓嶆槸瓒呯闇�瑕佺瓫閫�
-        if (SecurityUtils.getClientId() != null) {
-            wrapper.eq(LightTask::getClientId, SecurityUtils.getUserId()).or(w -> {
-                w.eq(LightTask::getUserId, SecurityUtils.getUserId());
-            });
-        }
 
         //鎺掑簭瀛楁
         String orderByResult = "task_id";
@@ -401,7 +362,8 @@
         String orderBy = orderByResult + " " + orderBySeq;
 
         PageHelper.startPage(conditionVO.getPageNo(), conditionVO.getPageSize(), orderBy);
-        List<LightTask> list = list(wrapper);
+        List<LightTask> list = baseMapper.listTask(SecurityUtils.getClientId(),keyword,orderBy);
+
 
         Page<LightTaskDto> page = new Page<>();
         BeanUtils.copyProperties(list, page);
@@ -409,6 +371,35 @@
             LightTaskDto lightTaskDto = new LightTaskDto();
             BeanUtils.copyProperties(lightTask, lightTaskDto);
             lightTaskDto.setWeekList(TaskOrderUtil.parseLightWeek2List(lightTask.getWeek()));
+            //涓嬪彂鎴愬姛鐨勭伅鏉嗘暟閲�
+            Integer successCount = baseMapper.successCount(lightTaskDto.getTaskId());
+            ///浠诲姟涓�荤殑鐏潌鏁伴噺
+            Integer toTalCount = baseMapper.toTalCount(lightTaskDto.getTaskId());
+            if (successCount == null) {
+                successCount = 0;
+            }
+            if (toTalCount == null) {
+                toTalCount = 0;
+            }
+            if (toTalCount == 0) {
+                //浠诲姟涓病鏈夌伅鏉�
+                lightTaskDto.setSyncStatus("鏈悓姝�");
+            } else {
+                //浠诲姟涓湁鐏潌
+                if (successCount == 0) {
+                    //涓嬪彂鎴愬姛鏈�0
+                    lightTaskDto.setSyncStatus("鏈悓姝�");
+                } else if (successCount != 0 && successCount < toTalCount) {
+                    //瀛樺湪涓嬪彂鎴愬姛    浣嗗苟鏈叏閮ㄦ垚鍔�
+                    lightTaskDto.setSyncStatus("閮ㄥ垎鍚屾");
+                } else if (toTalCount.equals(successCount) && toTalCount != 0 && successCount != 0) {
+                    //鍏ㄩ儴鎴愬姛
+                    lightTaskDto.setSyncStatus("宸插悓姝�");
+                } else {
+                    //鏈煡绫诲瀷
+                    lightTaskDto.setSyncStatus("鍚屾鐘舵�佸嚭閿�");
+                }
+            }
             page.add(lightTaskDto);
         }
         return page;
@@ -665,35 +656,65 @@
      */
     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();
+                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