From 0a86cfc623812431f41bc0255e9e6e7730e60df0 Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期三, 28 九月 2022 16:54:39 +0800
Subject: [PATCH] fix

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/ErrorMsgService.java         |  101 ++++++++++++++++++++-------------
 ximon-admin/src/main/java/com/sandu/ximon/admin/controller/ErrorMsgController.java   |    5 +
 dao/src/main/resources/mapper/LightReportErrorMapper.xml                             |   30 +++++----
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportErrorService.java |   14 +++-
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3mReportErrorService.java   |    1 
 5 files changed, 90 insertions(+), 61 deletions(-)

diff --git a/dao/src/main/resources/mapper/LightReportErrorMapper.xml b/dao/src/main/resources/mapper/LightReportErrorMapper.xml
index 9aa98b4..cea33d4 100644
--- a/dao/src/main/resources/mapper/LightReportErrorMapper.xml
+++ b/dao/src/main/resources/mapper/LightReportErrorMapper.xml
@@ -5,12 +5,12 @@
 <mapper namespace="com.sandu.ximon.dao.mapper.LightReportErrorMapper">
 
     <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.LightReportError">
-            <id property="lightReportErrorId" column="light_report_error_id" jdbcType="BIGINT"/>
-            <result property="deviceCode" column="device_code" jdbcType="VARCHAR"/>
-            <result property="lightAddress" column="light_address" jdbcType="VARCHAR"/>
-            <result property="errorCode" column="error_code" jdbcType="INTEGER"/>
-            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
-            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+        <id property="lightReportErrorId" column="light_report_error_id" jdbcType="BIGINT"/>
+        <result property="deviceCode" column="device_code" jdbcType="VARCHAR"/>
+        <result property="lightAddress" column="light_address" jdbcType="VARCHAR"/>
+        <result property="errorCode" column="error_code" jdbcType="INTEGER"/>
+        <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+        <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
     </resultMap>
     <resultMap id="listReportError" type="com.sandu.ximon.dao.bo.LightReportErrorBo" extends="BaseResultMap">
         <result property="poleName" column="pole_name" jdbcType="INTEGER"/>
@@ -27,6 +27,7 @@
         AND t2.device_type = 0
         LEFT JOIN pole t3 ON t3.id = t2.pole_id
         <where>
+            t1.error_code != 0
             <if test="keyword != null and keyword != ''">
                 AND (
                 t3.id LIKE CONCAT('%', #{keyword},'%')
@@ -46,16 +47,17 @@
     <select id="listError" resultType="com.sandu.ximon.dao.bo.LightReportErrorBo"
             parameterType="java.lang.Long">
         SELECT
-            t1.*
+        t1.*
         FROM
-            light_report_error t1
-                LEFT JOIN pole t3 ON t1.device_code = t3.device_code
+        light_report_error t1
+        LEFT JOIN pole t3 ON t1.device_code = t3.device_code
         WHERE
-            <if test="userid != null">
-                t3.client_id = #{userId} OR t3.user_id = #{userId}
-                </if>
-            t1.light_report_error_id IN ( SELECT t.max_id FROM ( SELECT Max( light_report_error.light_report_error_id ) AS max_id FROM light_report_error GROUP BY light_report_error.device_code ) AS t )
+        <if test="userid != null">
+            t3.client_id = #{userId} OR t3.user_id = #{userId}
+        </if>
+        t1.light_report_error_id IN ( SELECT t.max_id FROM ( SELECT Max( light_report_error.light_report_error_id ) AS
+        max_id FROM light_report_error GROUP BY light_report_error.device_code ) AS t )
         ORDER BY
-            t1.create_time DESC
+        t1.create_time DESC
     </select>
 </mapper>
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/ErrorMsgController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/ErrorMsgController.java
index bbbf97f..e263b60 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/ErrorMsgController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/ErrorMsgController.java
@@ -9,6 +9,7 @@
 import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 /**
@@ -24,8 +25,8 @@
 
     @AnonymousAccess
     @GetMapping("/listMsg")
-    public ResponseVO<Object> list(BaseConditionVO conditionVO){
+    public ResponseVO<Object> list(BaseConditionVO conditionVO, @RequestParam(value = "type", required = false) String type) {
 
-      return ResponseUtil.success(errorMsgService.listMsg(conditionVO));
+        return ResponseUtil.success(errorMsgService.listMsg(conditionVO, type));
     }
 }
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3mReportErrorService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3mReportErrorService.java
index 6fe18c8..22d333e 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3mReportErrorService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3mReportErrorService.java
@@ -1,6 +1,7 @@
 package com.sandu.ximon.admin.service;
 
 import com.github.pagehelper.PageHelper;
+import com.sandu.common.domain.CommonPage;
 import com.sandu.common.object.BaseConditionVO;
 import com.sandu.common.service.impl.BaseServiceImpl;
 import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5C3ErrorCodeReportInnerFrame;
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/ErrorMsgService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/ErrorMsgService.java
index 3f01ba0..f138605 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/ErrorMsgService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/ErrorMsgService.java
@@ -2,13 +2,17 @@
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.sandu.common.domain.CommonPage;
+import com.sandu.common.execption.BusinessException;
 import com.sandu.common.object.BaseConditionVO;
 import com.sandu.ximon.admin.dto.ErrorMsgDto;
+import com.sandu.ximon.admin.utils.ListPagingUtils;
 import com.sandu.ximon.dao.bo.C3ReportErrorBo;
 import com.sandu.ximon.dao.bo.LightReportErrorBo;
 import com.sandu.ximon.dao.domain.C3mCharging;
 import com.sandu.ximon.dao.domain.Light;
 import lombok.AllArgsConstructor;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
@@ -30,49 +34,66 @@
     private final C3ChargingService c3ChargingService;
 
 
-    public List<ErrorMsgDto> listMsg(BaseConditionVO baseConditionVO) {
-        List<ErrorMsgDto> errorMsgDtos = new ArrayList<>();
-        //鍗曠伅鏁呴殰鏁版嵁
-        List<LightReportErrorBo> lightReportErrors = lightReportErrorService.queryErrorCode(baseConditionVO);
-        if (!lightReportErrors.isEmpty()) {
-            for (LightReportErrorBo lightReportError : lightReportErrors) {
-                ErrorMsgDto errorMsgDto = new ErrorMsgDto();
-                errorMsgDto.setMac(lightReportError.getDeviceCode());
-                errorMsgDto.setErrorCode(lightReportError.getErrorCode());
-                errorMsgDto.setErrorDesc(lightReportError.getErrorMsg());
-                errorMsgDto.setErrorTime(lightReportError.getCreateTime());
-                errorMsgDto.setDeviceType(1);
-                Light one = lightService.getOne(Wrappers.lambdaQuery(Light.class).eq(Light::getDeviceCode, lightReportError.getDeviceCode()));
-                if (one != null) {
-                    errorMsgDto.setDeviceJson(JSON.toJSONString(one));
-                }
-                errorMsgDtos.add(errorMsgDto);
-            }
+    public CommonPage listMsg(BaseConditionVO baseConditionVO, String type) {
+        if (StringUtils.isEmpty(type)) {
+            throw new BusinessException("璁惧鏁呴殰绫诲瀷涓嶈兘涓虹┖锛�");
         }
-
-        //鍏呯數妗╂晠闅滄暟鎹�
-        List<C3ReportErrorBo> c3ReportErrorBos = c3mReportErrorService.listReportError(baseConditionVO);
-        if (!c3ReportErrorBos.isEmpty()) {
-            c3ReportErrorBos.forEach(c3ReportError -> {
-                ErrorMsgDto errorMsgDto = new ErrorMsgDto();
-                errorMsgDto.setMac(c3ReportError.getC3Mac());
-                errorMsgDto.setErrorDesc(c3ReportError.getErrorMsg());
-                errorMsgDto.setErrorTime(c3ReportError.getCreateTime());
-                errorMsgDto.setDeviceType(3);
-                C3mCharging one = c3ChargingService.getOne(Wrappers.lambdaQuery(C3mCharging.class).eq(C3mCharging::getC3Mac, c3ReportError.getC3Mac()));
-                if (one != null) {
-                    errorMsgDto.setDeviceJson(JSON.toJSONString(one));
+        CommonPage commonPage = null;
+        switch (type) {
+            case "鍗曠伅鏁呴殰":
+                //鍗曠伅鏁呴殰鏁版嵁
+                commonPage = lightReportErrorService.queryErrorCode(baseConditionVO);
+                if (!commonPage.getList().isEmpty()) {
+                    for (LightReportErrorBo lightReportError : (List<LightReportErrorBo>) commonPage.getList()) {
+                        ErrorMsgDto errorMsgDto = new ErrorMsgDto();
+                        errorMsgDto.setMac(lightReportError.getDeviceCode());
+                        errorMsgDto.setErrorCode(lightReportError.getErrorCode());
+                        errorMsgDto.setErrorDesc(lightReportError.getErrorMsg());
+                        errorMsgDto.setErrorTime(lightReportError.getCreateTime());
+                        errorMsgDto.setDeviceType(1);
+                        Light one = lightService.getOne(Wrappers.lambdaQuery(Light.class).eq(Light::getDeviceCode, lightReportError.getDeviceCode()));
+                        if (one != null) {
+                            errorMsgDto.setDeviceJson(JSON.toJSONString(one));
+                        }
+                    }
                 }
-                errorMsgDtos.add(errorMsgDto);
-            });
+                break;
+            case "鍏呯數妗╂晠闅�":
+                //鍏呯數妗╂晠闅滄暟鎹�
+                List<C3ReportErrorBo> c3ReportErrorBos = c3mReportErrorService.listReportError(baseConditionVO);
+                if (!c3ReportErrorBos.isEmpty()) {
+                    List<C3ReportErrorBo> list = c3ReportErrorBos;
+                    list.forEach(c3ReportError -> {
+                        ErrorMsgDto errorMsgDto = new ErrorMsgDto();
+                        errorMsgDto.setMac(c3ReportError.getC3Mac());
+                        errorMsgDto.setErrorDesc(c3ReportError.getErrorMsg());
+                        errorMsgDto.setErrorTime(c3ReportError.getCreateTime());
+                        errorMsgDto.setDeviceType(3);
+                        C3mCharging one = c3ChargingService.getOne(Wrappers.lambdaQuery(C3mCharging.class).eq(C3mCharging::getC3Mac, c3ReportError.getC3Mac()));
+                        if (one != null) {
+                            errorMsgDto.setDeviceJson(JSON.toJSONString(one));
+                        }
+                    });
+                    commonPage = new CommonPage();
+                    commonPage.setList(c3ReportErrorBos);
+                }
+
+                break;
+            case "澶ф皵鏁呴殰":
+                //澶ф皵鏁呴殰鏁版嵁  todo 鏆傛棤
+
+                break;
+            default:
+                throw new BusinessException("绫诲瀷涓嶆纭紝璇风‘璁わ紒");
         }
-
-        //澶ф皵鏁呴殰鏁版嵁  todo 鏆傛棤
-
-        //瀵筫rrorMsgDtos鎸夊垱寤烘椂闂村�掑彊
-        errorMsgDtos.sort((a, b) -> b.getErrorTime().compareTo(a.getErrorTime()));
-        //鎵嬪姩鍒嗛〉  baseConditionVO.getPageNo() 褰撳墠椤� baseConditionVO.getPageSize() 姣忛〉鏉℃暟
-        return errorMsgDtos.subList((baseConditionVO.getPageNo() - 1) * baseConditionVO.getPageSize(), baseConditionVO.getPageNo() * baseConditionVO.getPageSize());
+//
+//
+//        //瀵筫rrorMsgDtos鎸夊垱寤烘椂闂村�掑彊
+//        errorMsgDtos.sort((a, b) -> b.getErrorTime().compareTo(a.getErrorTime()));
+//        //鎵嬪姩鍒嗛〉  baseConditionVO.getPageNo() 褰撳墠椤� baseConditionVO.getPageSize() 姣忛〉鏉℃暟
+////        return errorMsgDtos.subList((baseConditionVO.getPageNo() - 1) * baseConditionVO.getPageSize(), baseConditionVO.getPageNo() * baseConditionVO.getPageSize());
+//        ListPagingUtils.pages(errorMsgDtos, baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
+        return commonPage;
     }
 
 
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportErrorService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportErrorService.java
index 064ac73..1d918fb 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportErrorService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportErrorService.java
@@ -1,6 +1,7 @@
 package com.sandu.ximon.admin.service;
 
 import com.github.pagehelper.PageHelper;
+import com.sandu.common.domain.CommonPage;
 import com.sandu.common.execption.BusinessException;
 import com.sandu.common.object.BaseConditionVO;
 import com.sandu.common.service.impl.BaseServiceImpl;
@@ -15,6 +16,7 @@
 import com.sandu.ximon.admin.manager.iot.rrpc.enums.LightErrorEnum;
 import com.sandu.ximon.admin.manager.iot.rrpc.mainboard.MainBoardInvokeSyncService;
 import com.sandu.ximon.admin.security.SecurityUtils;
+import com.sandu.ximon.admin.utils.ListPagingUtils;
 import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils;
 import com.sandu.ximon.dao.bo.LightReportErrorBo;
 import com.sandu.ximon.dao.domain.LightReportError;
@@ -23,6 +25,7 @@
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author chenjiantian
@@ -69,11 +72,12 @@
      *
      * @return
      */
-    public List<LightReportErrorBo> queryErrorCode(BaseConditionVO baseConditionVO) {
-
-        PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
+    public CommonPage queryErrorCode(BaseConditionVO baseConditionVO) {
         List<LightReportErrorBo> lightReportErrorBos = baseMapper.listError(SecurityUtils.getClientId());
-        for (LightReportErrorBo lightReportErrorBo : lightReportErrorBos) {
+        lightReportErrorBos = lightReportErrorBos.stream().filter(bean -> bean.getErrorCode() != 0).collect(Collectors.toList());
+        CommonPage commonPage = ListPagingUtils.pages(lightReportErrorBos, baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
+
+        for (LightReportErrorBo lightReportErrorBo : (List<LightReportErrorBo>) commonPage.getList()) {
             Integer errorCode = lightReportErrorBo.getErrorCode();
             StringBuilder sb = new StringBuilder();
             LightErrorEnum[] values = LightErrorEnum.values();
@@ -84,7 +88,7 @@
             }
             lightReportErrorBo.setErrorMsg(sb.toString());
         }
-        return lightReportErrorBos;
+        return commonPage;
     }
 
     /**

--
Gitblit v1.9.3