Explorar el Código

省份省电量排行列表

zhj hace 9 meses
padre
commit
b5d45bea50

+ 18 - 0
src/main/java/com/welampiot/controller/DataController.java

@@ -779,4 +779,22 @@ public class DataController extends BaseController {
         }
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, version, lampInfoDataVO);
     }
+
+    /**
+     * 省份省电量排行列表
+     */
+    @RequestMapping(value = "/provinceEleSaveList", method = RequestMethod.POST)
+    public BaseResult<?> provinceEleSaveList(BaseVO baseVO) {
+        Integer version = baseVO.getVersion();
+
+        List<Integer> sectionList = getSectionList(baseVO.getUsername());
+        baseVO.setSectionList(sectionList);
+        List<LampInfoLogNewDTO> provinceList = lampInfoLogNewService.getLampLogProvinceList(baseVO);
+
+        DecimalFormat df = new DecimalFormat("0.##");
+        provinceList.forEach(item -> item.setTotalEleSave(df.format(item.getTotalEleSaveDouble())));
+        LampInfoLogNewVO lampInfoLogNewVO = new LampInfoLogNewVO();
+        lampInfoLogNewVO.setList(provinceList);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, version, lampInfoLogNewVO);
+    }
 }

+ 3 - 0
src/main/java/com/welampiot/dao/LampInfoLogNewDao.java

@@ -5,6 +5,8 @@ import com.welampiot.dto.LampInfoLogNewDTO;
 import com.welampiot.vo.BaseVO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * ClassName: LampInfoLogNewDao
  * Package: com.welampiot.dao
@@ -25,4 +27,5 @@ public interface LampInfoLogNewDao {
     LampInfoLogNewDTO getNewestLampInfoLog(@Param("lampId") Integer lampId);
 
     LampInfoLogNewDTO getTodayAllLampLogData(BaseVO baseVO);
+    List<LampInfoLogNewDTO> getLampLogProvinceList(BaseVO baseVO);
 }

+ 1 - 0
src/main/java/com/welampiot/dto/LampInfoLogNewDTO.java

@@ -71,6 +71,7 @@ public class LampInfoLogNewDTO implements Serializable {
 
     private String totalEleSaveCache;
     private String totalEleSave;
+    private Double totalEleSaveDouble;
     private String usedEnergyTonight;
 
     private String sumTotalEleSave; // 累计省电量之和

+ 3 - 0
src/main/java/com/welampiot/service/LampInfoLogNewService.java

@@ -5,6 +5,8 @@ import com.welampiot.dto.LampInfoLogNewDTO;
 import com.welampiot.vo.BaseVO;
 import com.welampiot.vo.LampInfoLogNewVO;
 
+import java.util.List;
+
 /**
  * ClassName: LampInfoLogNewService
  * Package: com.welampiot.service
@@ -26,4 +28,5 @@ public interface LampInfoLogNewService {
     LampInfoLogNewDTO getNewestLampInfoLog(Integer lampId);
 
     LampInfoLogNewDTO getTodayAllLampLogData(BaseVO baseVO);
+    List<LampInfoLogNewDTO> getLampLogProvinceList(BaseVO baseVO);
 }

+ 7 - 0
src/main/java/com/welampiot/service/impl/LampInfoLogNewServiceImpl.java

@@ -10,6 +10,8 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * ClassName: LampInfoLogNewServiceImpl
  * Package: com.welampiot.service.impl
@@ -62,4 +64,9 @@ public class LampInfoLogNewServiceImpl implements LampInfoLogNewService {
     public LampInfoLogNewDTO getTodayAllLampLogData(BaseVO baseVO) {
         return lampInfoLogNewDao.getTodayAllLampLogData(baseVO);
     }
+
+    @Override
+    public List<LampInfoLogNewDTO> getLampLogProvinceList(BaseVO baseVO) {
+        return lampInfoLogNewDao.getLampLogProvinceList(baseVO);
+    }
 }

+ 3 - 0
src/main/java/com/welampiot/vo/LampInfoLogNewVO.java

@@ -1,8 +1,10 @@
 package com.welampiot.vo;
 
+import com.welampiot.dto.LampInfoLogNewDTO;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * ClassName: LampInfoLogNewVO
@@ -58,4 +60,5 @@ public class LampInfoLogNewVO implements Serializable {
     private String lampStatusStr; // 路灯状态
 
     private String lighteness; // 路灯亮度值
+    private List<LampInfoLogNewDTO> list;
 }

+ 46 - 34
src/main/resources/mapper/LampInfoLogNewMapper.xml

@@ -114,7 +114,7 @@
             and b.id = #{cityId}
         </if>
         <if test="provinceId != null and provinceId != 0">
-            and d.id = #{provinceId}
+            and c.id = #{provinceId}
         </if>
         <if test="sectionList != null and !sectionList.isEmpty()">
             and l1.sectionid in
@@ -124,38 +124,50 @@
         </if>
     </select>
 
-<!--    <select id="getTodayAllLampLogData" resultType="LampInfoLogNewDTO">-->
-<!--        SELECT-->
-<!--        SUM(l.used_energy_tonight) AS usedEnergyTonight,-->
-<!--        SUM(l.day_ele_save) AS dayEleSave,-->
-<!--        SUM(l.used_energy_total) AS usedEnergyTotal,-->
-<!--        SUM(l.total_ele_save) AS totalEleSave-->
-<!--        FROM-->
-<!--        lamp_info_log_new l-->
-<!--        LEFT JOIN lampinfo l1 ON l.lampid = l1.id-->
-<!--        LEFT JOIN section s ON s.id = l1.sectionid-->
-<!--        LEFT JOIN global_location a ON a.id = s.pid-->
-<!--        LEFT JOIN global_location b ON b.id = a.pid-->
-<!--        LEFT JOIN global_location c ON c.id = b.pid-->
-<!--        WHERE 1=1-->
-<!--        <if test="sectionId != null and sectionId != 0">-->
-<!--            and s.id = #{sectionId}-->
-<!--        </if>-->
-<!--        <if test="areaId != null and areaId != 0">-->
-<!--            and a.id = #{areaId}-->
-<!--        </if>-->
-<!--        <if test="cityId != null and cityId != 0">-->
-<!--            and b.id = #{cityId}-->
-<!--        </if>-->
-<!--        <if test="provinceId != null and provinceId != 0">-->
-<!--            and d.id = #{provinceId}-->
-<!--        </if>-->
-<!--        <if test="sectionList != null and !sectionList.isEmpty()">-->
-<!--            and l1.sectionid in-->
-<!--            <foreach collection="sectionList" item="item" open="(" separator="," close=")">-->
-<!--                #{item}-->
-<!--            </foreach>-->
-<!--        </if>-->
-<!--    </select>-->
+    <!--  查询各省份的省电量  -->
+    <select id="getLampLogProvinceList" resultType="LampInfoLogNewDTO">
+        SELECT
+        SUM(l.total_ele_save) AS totalEleSaveDouble,
+        c.id AS provinceId
+        <choose>
+            <when test="version == 2">
+                ,c.ru_name AS provinceName
+            </when>
+            <when test="version == 1">
+                ,c.english_name AS provinceName
+            </when>
+            <otherwise>
+                ,c.chinese_name AS provinceName
+            </otherwise>
+        </choose>
+        FROM
+        lamp_info_log_new l
+        LEFT JOIN lampinfo l1 ON l.lampid = l1.id
+        LEFT JOIN section s ON s.id = l1.sectionid
+        LEFT JOIN global_location a ON a.id = s.pid
+        LEFT JOIN global_location b ON b.id = a.pid
+        LEFT JOIN global_location c ON c.id = b.pid
+        WHERE c.id IS NOT NULL
+        <if test="sectionId != null and sectionId != 0">
+            and s.id = #{sectionId}
+        </if>
+        <if test="areaId != null and areaId != 0">
+            and a.id = #{areaId}
+        </if>
+        <if test="cityId != null and cityId != 0">
+            and b.id = #{cityId}
+        </if>
+        <if test="provinceId != null and provinceId != 0">
+            and c.id = #{provinceId}
+        </if>
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and l1.sectionid in
+            <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        GROUP BY provinceId
+        ORDER BY totalEleSaveDouble DESC
+    </select>
 
 </mapper>