Sfoglia il codice sorgente

耗电报表,删除历史数据

zhj 2 anni fa
parent
commit
894afccd5a

+ 165 - 0
src/main/java/com/welampiot/controller/ReportController.java

@@ -2,8 +2,14 @@ package com.welampiot.controller;
 
 import com.welampiot.common.BaseResult;
 import com.welampiot.common.InterfaceResultEnum;
+import com.welampiot.dto.LampInfoCacheByDayDTO;
+import com.welampiot.dto.LampInfoLogDTO;
+import com.welampiot.service.LampInfoCacheByDayService;
+import com.welampiot.service.LampInfoLogService;
 import com.welampiot.service.LampService;
+import com.welampiot.utils.ExcelUtil;
 import com.welampiot.utils.ToolUtils;
+import com.welampiot.vo.LampInfoCacheByDayVO;
 import com.welampiot.vo.LampInfoDataVO;
 import com.welampiot.vo.LampInfoVO;
 import org.jetbrains.annotations.NotNull;
@@ -13,7 +19,10 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.servlet.http.HttpServletRequest;
 import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 /**
  * ClassName: ReportController
@@ -32,6 +41,10 @@ public class ReportController {
     private ToolUtils toolUtils;
     @Autowired
     private LampService lampService;
+    @Autowired
+    private LampInfoCacheByDayService lampInfoCacheByDayService;
+    @Autowired
+    private LampInfoLogService lampInfoLogService;
 
     /**
      * 耗电报表
@@ -98,4 +111,156 @@ public class ReportController {
         lampInfoVO1.setSavePower(lampInfoVO.getSavePower());
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampInfoVO1);
     }
+
+    /**
+     * 亮灯时间报表
+     * @param request 时间类型、统计类型
+     * @return 灯控累计亮灯时间统计数据
+     */
+    @RequestMapping(value = "/getList", method = RequestMethod.POST)
+    public BaseResult<?> getList(HttpServletRequest request) throws ParseException {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer areaId = (Integer) toolUtils.getRequestContent(request,"areaId",1);
+        Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1);
+        Integer lampId = (Integer) toolUtils.getRequestContent(request,"lampId",1);
+        Integer page = (Integer) toolUtils.getRequestContent(request,"page",1);
+        Integer count = (Integer) toolUtils.getRequestContent(request,"count",1);
+        Integer download = (Integer) toolUtils.getRequestContent(request,"download",1);
+        String keyword = (String) toolUtils.getRequestContent(request,"keyword",2);
+        if (page == 0) page = 1;
+        if (count == 0) count = 16;
+
+        long l = System.currentTimeMillis();
+        Date date1 = new Date(l);
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date1);
+        int year = calendar.get(Calendar.YEAR); // 获取年份
+        int month = calendar.get(Calendar.MONTH) + 1; // 获取月份
+        String startDate,startDate1,startDate2;
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        String endDate = simpleDateFormat.format(l);
+
+        if (month < 10) {
+            startDate = year + "-0" + month + "-01";
+        } else {
+            startDate = year + "-" + month + "-01";
+        }
+        startDate1 = year + "-01" + "-01";
+        startDate2 = "2020-01-01";
+
+        LampInfoCacheByDayDTO dayDTO = new LampInfoCacheByDayDTO();
+        dayDTO.setAreaId(areaId);
+        dayDTO.setSectionId(sectionId);
+        dayDTO.setStartDate(startDate);
+        dayDTO.setStartDate1(startDate1);
+        dayDTO.setStartDate2(startDate2);
+        dayDTO.setKeyword(keyword);
+        if (download == 0) {
+            dayDTO.setPage(page);
+            dayDTO.setCount(count);
+        }
+        dayDTO.setVersion(version);
+        dayDTO.setLampId(lampId);
+        dayDTO.setEndDate(endDate);
+        dayDTO.setSectionList(toolUtils.getSectionList(request));
+        List<LampInfoCacheByDayDTO> conSumList = lampInfoCacheByDayService.getEleConsumptionSaveList(dayDTO);
+        LampInfoCacheByDayVO lampInfoCacheByDayVO = new LampInfoCacheByDayVO();
+        lampInfoCacheByDayVO.setList(conSumList);
+        if (download == 1) { // 导出数据
+            String title;
+            if (version == 0) {
+                title = "序号,路灯编号,行政区,路段,更新时间,功率(W)," +
+                        "用电量(kWh)(当天统计),省电量(kWh)(当天统计),电费(元)(当天统计),节省电费(元)(当天统计),亮灯时长(min)," +
+                        "用电量(kWh)(当月统计),省电量(kWh)(当月统计),电费(元)(当月统计),节省电费(元)(当月统计),亮灯时长(min)," +
+                        "用电量(kWh)(当年统计),省电量(kWh)(当年统计),电费(元)(当年统计),节省电费(元)(当年统计),亮灯时长(min)," +
+                        "用电量(kWh)(累计统计),省电量(kWh)(累计统计),电费(元)(累计统计),节省电费(元)(累计统计),亮灯时长(min)"
+                ;
+            } else if (version == 1) {
+                title = "Serial number,street lamp number,district,road section,renewal time,power," +
+                        "electricity consumption(kWh)(daily statistics),electricity saving(kWh)(daily statistics),electricity cost(yuan)(daily statistics),electricity saving(yuan)(daily statistics),lighting time(min)," +
+                        "electricity consumption(kWh)(current month statistics),electricity saving(kWh)(current month statistics),electricity cost(yuan)(current month statistics),electricity saving(yuan)(current month statistics),lighting time(min)," +
+                        "electricity consumption(kWh)(current statistics),electricity saving(kWh)(current statistics),electricity cost(yuan)(current statistics),electricity saving(yuan)(current statistics),lighting time(min)," +
+                        "electricity consumption(kWh)(cumulative statistics),electricity saving(kWh)(cumulative statistics),electricity cost(yuan)(cumulative statistics),electricity saving(yuan)(cumulative statistics),lighting time(min)"
+                ;
+            } else {
+                title = "Порядковый номер,номер уличного фонаря,административный район,участок дороги,время обновления,мощность (W)," +
+                        "Потреблен электроэнерг (квт. ч) (ден статистическ), провинц электричеств (квт. ч) (ден статистическ), электричеств (доллар) (ден статистическ), сэконом электричеств (доллар) (ден статистическ), выключ свет продолжительн (мин)," +
+                        "Потреблен электроэнерг (квт. ч) (месяц статистическ), провинц электричеств (квт. ч) (месяц статистическ), электричеств (доллар) (месяц статистическ), сэконом электричеств (доллар) (месяц статистическ), выключ свет продолжительн (мин)," +
+                        "Потреблен электроэнерг (квт. ч) (год статистическ), провинц электричеств (квт. ч) (год статистическ), электричеств (доллар) (год статистическ), сэконом электричеств (доллар) (год статистическ), выключ свет продолжительн (мин)," +
+                        "Потреблен электроэнерг (квт. ч) (совокупн статистическ), провинц электричеств (квт. ч) (совокупн статистическ), электричеств (доллар) (совокупн статистическ), сэконом электричеств (доллар) (совокупн статистическ), выключ свет продолжительн (мин)"
+                ;
+            }
+            List<String> titleList = Arrays.asList(title.split(","));
+            List<List<String>> contentList = new ArrayList<>();
+            for (LampInfoCacheByDayDTO dto : conSumList) {
+                List<String> newString = new ArrayList<>();
+                newString.add(String.valueOf(conSumList.indexOf(dto) + 1));
+                newString.add(dto.getNumber());
+                newString.add(dto.getArea());
+                newString.add(dto.getSection());
+                newString.add(dto.getUpdateTime());
+                newString.add(dto.getPower());
+                newString.add(dto.getDayConsumption());
+                newString.add(dto.getDayEleSave());
+                newString.add(dto.getDayUser());
+                newString.add(dto.getDayEleUser());
+                newString.add(String.valueOf(dto.getDayLightTime()));
+                newString.add(dto.getMonthConsumption());
+                newString.add(dto.getMonthEleSave());
+                newString.add(dto.getMonthUser());
+                newString.add(dto.getMonthEleUser());
+                newString.add(String.valueOf(dto.getMonthLightTime()));
+                newString.add(dto.getYearConsumption());
+                newString.add(dto.getYearEleSave());
+                newString.add(dto.getYearUser());
+                newString.add(dto.getYearEleUser());
+                newString.add(String.valueOf(dto.getYearLightTime()));
+                newString.add(dto.getTotalConsumption());
+                newString.add(dto.getTotalEleSave());
+                newString.add(dto.getTotalUser());
+                newString.add(dto.getTotalEleUser());
+                newString.add(String.valueOf(dto.getLightTime()));
+                contentList.add(conSumList.indexOf(dto),newString);
+            }
+            String path = ExcelUtil.outExcel(titleList, contentList);
+            lampInfoCacheByDayVO.setPath(path);
+        }
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampInfoCacheByDayVO);
+    }
+
+    /**
+     * 删除历史数据
+     * @param request lampId
+     * @return 删除历史数据
+     */
+    @RequestMapping(value = "/del", method = RequestMethod.POST)
+    public BaseResult<?> del(HttpServletRequest request) throws ParseException {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer lampId = (Integer) toolUtils.getRequestContent(request,"lampId",1);
+        if (lampId == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        String date = (String) toolUtils.getRequestContent(request,"date",2);
+        LampInfoCacheByDayDTO dto = new LampInfoCacheByDayDTO();
+        dto.setLampId(lampId);
+        LampInfoLogDTO lampInfoLogDTO = new LampInfoLogDTO();
+        lampInfoLogDTO.setLampId(lampId);
+        if (!date.isEmpty()) {
+            List<String> split = Arrays.asList(date.split("/"));
+            String startDate = split.get(0);
+            String endDate = split.get(1);
+            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            long startTime,endTime;
+            startTime = simpleDateFormat.parse(startDate + " 00:00:00").getTime();
+            endTime = simpleDateFormat.parse(endDate + " 23:59:59").getTime();
+            if (endTime < startTime) return toolUtils.response(InterfaceResultEnum.LACK_DATE_FORMAT_ERROR, version);
+            if (endTime - startTime > 29L * 24 * 3600 * 1000)
+                return toolUtils.response(InterfaceResultEnum.LACK_DATE_RANGE_ERROR, version);
+            dto.setStartDate(startDate);
+            dto.setEndDate(endDate);
+            lampInfoLogDTO.setStartDate(startDate);
+            lampInfoLogDTO.setEndDate(endDate);
+        }
+        lampInfoCacheByDayService.deleteLampInfoCacheByDayData(dto);
+        lampInfoLogService.deleteLampInfoLogData(lampInfoLogDTO);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
 }

+ 4 - 0
src/main/java/com/welampiot/dao/LampInfoCacheByDayDao.java

@@ -30,4 +30,8 @@ public interface LampInfoCacheByDayDao {
     List<LampInfoCacheByDayDTO> getSectionOfMonthConSum(LampInfoCacheByDayDTO dto);
 
     List<LampInfoCacheByDayDTO> getConSumListBySection(LampInfoCacheByDayDTO dto);
+
+    List<LampInfoCacheByDayDTO> getEleConsumptionSaveList(LampInfoCacheByDayDTO dto);
+
+    void deleteLampInfoCacheByDayData(LampInfoCacheByDayDTO dto);
 }

+ 1 - 0
src/main/java/com/welampiot/dao/LampInfoLogDao.java

@@ -10,4 +10,5 @@ public interface LampInfoLogDao {
     Integer deleteByLampId(@Param("lampId")Integer lampId);
     List<LampInfoLogDTO> getListByVO(LampLogVO lampLogVO);
     List<LampInfoLogDTO> getDayEleUsedList(@Param("type") Integer type, @Param("value") Integer value);
+    void deleteLampInfoLogData(LampInfoLogDTO dto);
 }

+ 33 - 0
src/main/java/com/welampiot/dto/LampInfoCacheByDayDTO.java

@@ -42,14 +42,47 @@ public class LampInfoCacheByDayDTO {
     private Integer value;
 
     private String startDate;
+    private String startDate1;
+    private String startDate2;
 
     private String endDate;
 
+    private String number;
+
+    private String keyword;
+    private Integer page;
+    private Integer count;
+    private Integer version;
+
     private String name;
 
     private String eleFree; // 电费
 
     private String saveEleFree; // 节省电费
 
+    private String area;
+    private String section;
+    private String power;
+    private String dayConsumption;
+    private String monthConsumption;
+    private String yearConsumption;
+    private String totalConsumption;
+    private String dayUser;
+    private String monthUser;
+    private String yearUser;
+    private String totalUser;
+    private String dayEleSave;
+    private String monthEleSave;
+    private String yearEleSave;
+    private String totalEleSave;
+    private String dayEleUser;
+    private String monthEleUser;
+    private String yearEleUser;
+    private String totalEleUser;
+    private Integer dayLightTime;
+    private Integer monthLightTime;
+    private Integer yearLightTime;
+    private String newTime;
+
     private List<Integer> sectionList;
 }

+ 3 - 0
src/main/java/com/welampiot/dto/LampInfoLogDTO.java

@@ -15,4 +15,7 @@ public class LampInfoLogDTO {
     private String sumMaxSave;
     private String sumMinLightTime;
     private String sumMaxLightTime;
+    private Integer lampId;
+    private String startDate;
+    private String endDate;
 }

+ 4 - 0
src/main/java/com/welampiot/service/LampInfoCacheByDayService.java

@@ -30,4 +30,8 @@ public interface LampInfoCacheByDayService {
     List<LampInfoCacheByDayDTO> getSectionOfMonthConSum(LampInfoCacheByDayDTO dto);
 
     List<LampInfoCacheByDayDTO> getConSumListBySection(LampInfoCacheByDayDTO dto);
+
+    List<LampInfoCacheByDayDTO> getEleConsumptionSaveList(LampInfoCacheByDayDTO dto);
+
+    void deleteLampInfoCacheByDayData(LampInfoCacheByDayDTO dto);
 }

+ 1 - 0
src/main/java/com/welampiot/service/LampInfoLogService.java

@@ -9,4 +9,5 @@ public interface LampInfoLogService {
     Integer deleteByLampId(Integer lampId);
     List<LampInfoLogDTO> getListByVO(LampLogVO lampLogVO);
     List<LampInfoLogDTO> getDayEleUsedList(Integer type, Integer value);
+    void deleteLampInfoLogData(LampInfoLogDTO dto);
 }

+ 118 - 0
src/main/java/com/welampiot/service/impl/LampInfoCacheByDayServiceImpl.java

@@ -7,6 +7,7 @@ import com.welampiot.service.LampInfoCacheByDayService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.text.DecimalFormat;
 import java.util.List;
 
 /**
@@ -62,4 +63,121 @@ public class LampInfoCacheByDayServiceImpl implements LampInfoCacheByDayService
     public List<LampInfoCacheByDayDTO> getConSumListBySection(LampInfoCacheByDayDTO dto) {
         return lampInfoCacheByDayDao.getConSumListBySection(dto);
     }
+
+    @Override
+    public List<LampInfoCacheByDayDTO> getEleConsumptionSaveList(LampInfoCacheByDayDTO dto) {
+        List<LampInfoCacheByDayDTO> list = lampInfoCacheByDayDao.getEleConsumptionSaveList(dto);
+        DecimalFormat decimalFormat = new DecimalFormat("0.00");
+        for (LampInfoCacheByDayDTO l : list) {
+            if (l.getDayConsumption() != null) { // 当天用电量
+                float dayConSum = Float.parseFloat(l.getDayConsumption());
+                float dayFree = dayConSum * 0.75f;
+                String format = decimalFormat.format(dayConSum);
+                String format1 = decimalFormat.format(dayFree);
+                l.setDayConsumption(format);
+                l.setDayUser(format1);
+            } else {
+                l.setDayConsumption("0");
+                l.setDayUser("0");
+            }
+            if (l.getMonthConsumption() != null) { // 当月用电量
+                float monthConSum = Float.parseFloat(l.getMonthConsumption());
+                float monthFree = monthConSum * 0.75f;
+                String format = decimalFormat.format(monthConSum);
+                String format1 = decimalFormat.format(monthFree);
+                l.setMonthConsumption(format);
+                l.setMonthUser(format1);
+            } else {
+                l.setDayConsumption("0");
+                l.setDayUser("0");
+            }
+            if (l.getYearConsumption() != null) { // 当年用电量
+                float conSum = Float.parseFloat(l.getYearConsumption());
+                float free = conSum * 0.75f;
+                String format = decimalFormat.format(conSum);
+                String format1 = decimalFormat.format(free);
+                l.setYearConsumption(format);
+                l.setYearUser(format1);
+            } else {
+                l.setYearConsumption("0");
+                l.setYearUser("0");
+            }
+            if (l.getTotalConsumption() != null) { // 累计用电量
+                float conSum = Float.parseFloat(l.getTotalConsumption());
+                float free = conSum * 0.75f;
+                String format = decimalFormat.format(conSum);
+                String format1 = decimalFormat.format(free);
+                l.setTotalConsumption(format);
+                l.setTotalUser(format1);
+            } else {
+                l.setTotalConsumption("0");
+                l.setTotalUser("0");
+            }
+            if (l.getDayEleSave() != null) { // 当天省电量
+                float save = Float.parseFloat(l.getDayEleSave());
+                float free = save * 0.75f;
+                String format = decimalFormat.format(save);
+                String format1 = decimalFormat.format(free);
+                l.setDayEleSave(format);
+                l.setDayEleUser(format1);
+            } else {
+                l.setDayEleSave("0");
+                l.setDayEleUser("0");
+            }
+            if (l.getMonthEleSave() != null) { // 当月省电量
+                float save = Float.parseFloat(l.getMonthEleSave());
+                float free = save * 0.75f;
+                String format = decimalFormat.format(save);
+                String format1 = decimalFormat.format(free);
+                l.setMonthEleSave(format);
+                l.setMonthEleUser(format1);
+            } else {
+                l.setMonthEleSave("0");
+                l.setMonthEleUser("0");
+            }
+            if (l.getYearEleSave() != null) { // 当年省电量
+                float save = Float.parseFloat(l.getYearEleSave());
+                float free = save * 0.75f;
+                String format = decimalFormat.format(save);
+                String format1 = decimalFormat.format(free);
+                l.setYearEleSave(format);
+                l.setYearEleUser(format1);
+            } else {
+                l.setYearEleSave("0");
+                l.setYearEleUser("0");
+            }
+            if (l.getTotalEleSave() != null) { // 累计省电量
+                float save = Float.parseFloat(l.getTotalEleSave());
+                float free = save * 0.75f;
+                String format = decimalFormat.format(save);
+                String format1 = decimalFormat.format(free);
+                l.setTotalEleSave(format);
+                l.setTotalEleUser(format1);
+            } else {
+                l.setTotalEleSave("0");
+                l.setTotalEleUser("0");
+            }
+            if (l.getDayLightTime() == null) { // 当天亮灯时长
+                l.setDayLightTime(0);
+            }
+            if (l.getMonthLightTime() == null) { // 当月亮灯时长
+                l.setMonthLightTime(0);
+            }
+            if (l.getYearLightTime() == null) { // 当年亮灯时长
+                l.setYearLightTime(0);
+            }
+            if (l.getLightTime() == null) { // 累计亮灯时长
+                l.setLightTime(0);
+            }
+            if (l.getNewTime() != null) {
+                l.setUpdateTime(l.getNewTime());
+            }
+        }
+        return list;
+    }
+
+    @Override
+    public void deleteLampInfoCacheByDayData(LampInfoCacheByDayDTO dto) {
+        lampInfoCacheByDayDao.deleteLampInfoCacheByDayData(dto);
+    }
 }

+ 5 - 0
src/main/java/com/welampiot/service/impl/LampInfoLogServiceImpl.java

@@ -28,4 +28,9 @@ public class LampInfoLogServiceImpl implements LampInfoLogService {
     public List<LampInfoLogDTO> getDayEleUsedList(Integer type, Integer value) {
         return lampInfoLogDao.getDayEleUsedList(type, value);
     }
+
+    @Override
+    public void deleteLampInfoLogData(LampInfoLogDTO dto) {
+        lampInfoLogDao.deleteLampInfoLogData(dto);
+    }
 }

+ 71 - 0
src/main/resources/mapper/LampInfoCacheByDayMapper.xml

@@ -183,4 +183,75 @@
         GROUP BY l.sectionid
     </select>
 
+    <select id="getEleConsumptionSaveList" resultType="LampInfoCacheByDayDTO">
+        SELECT
+            (SELECT SUM(l.consum) FROM lamp_info_cache_by_day l WHERE l.lampid = a.id AND l.updatetime = CURDATE()) AS dayConsumption,
+            (SELECT SUM(l.consum) FROM lamp_info_cache_by_day l WHERE l.lampid = a.id AND l.updatetime >= #{startDate} AND l.updatetime <![CDATA[ <= ]]> #{endDate}) AS monthConsumption,
+            (SELECT SUM(l.consum) FROM lamp_info_cache_by_day l WHERE l.lampid = a.id AND l.updatetime >= #{startDate1} AND l.updatetime <![CDATA[ <= ]]> #{endDate}) AS yearConsumption,
+            (SELECT SUM(l.consum) FROM lamp_info_cache_by_day l WHERE l.lampid = a.id AND l.updatetime >= #{startDate2} AND l.updatetime <![CDATA[ <= ]]> #{endDate}) AS totalConsumption,
+            (SELECT SUM(l.lightTime) FROM lamp_info_cache_by_day l WHERE l.lampid = a.id AND l.updatetime = CURDATE()) AS dayLightTime,
+            (SELECT SUM(l.lightTime) FROM lamp_info_cache_by_day l WHERE l.lampid = a.id AND l.updatetime >= #{startDate} AND l.updatetime <![CDATA[ <= ]]> #{endDate}) AS monthLightTime,
+            (SELECT SUM(l.lightTime) FROM lamp_info_cache_by_day l WHERE l.lampid = a.id AND l.updatetime >= #{startDate1} AND l.updatetime <![CDATA[ <= ]]> #{endDate}) AS yearLightTime,
+            (SELECT SUM(l.lightTime) FROM lamp_info_cache_by_day l WHERE l.lampid = a.id AND l.updatetime >= #{startDate2} AND l.updatetime <![CDATA[ <= ]]> #{endDate}) AS lightTime,
+            (SELECT SUM(l.powerSave) FROM lamp_info_cache_by_day l WHERE l.lampid = a.id AND l.updatetime = CURDATE()) AS dayEleSave,
+            (SELECT SUM(l.powerSave) FROM lamp_info_cache_by_day l WHERE l.lampid = a.id AND l.updatetime >= #{startDate} AND l.updatetime <![CDATA[ <= ]]> #{endDate}) AS monthEleSave,
+            (SELECT SUM(l.powerSave) FROM lamp_info_cache_by_day l WHERE l.lampid = a.id AND l.updatetime >= #{startDate1} AND l.updatetime <![CDATA[ <= ]]> #{endDate}) AS yearEleUser,
+            (SELECT SUM(l.powerSave) FROM lamp_info_cache_by_day l WHERE l.lampid = a.id AND l.updatetime >= #{startDate2} AND l.updatetime <![CDATA[ <= ]]> #{endDate}) AS totalEleUser,
+            a.number,
+            a.ratedpower AS power,
+            a.updatetime AS updateTime,
+            s.name AS section,
+            l1.updatetime AS newTime
+            <choose>
+                <when test="version == 0">
+                    ,gl.chinese_name AS area
+                </when>
+                <when test="version == 1">
+                    ,gl.english_name AS area
+                </when>
+                <otherwise>
+                    ,gl.ru_name AS area
+                </otherwise>
+            </choose>
+        FROM lampinfo a
+        LEFT JOIN section s ON a.sectionid = s.id
+        LEFT JOIN global_location gl ON s.pid = gl.id
+        LEFT JOIN lamp_info_cache_by_day l1 ON a.id = l1.lampid
+        WHERE 1=1
+        <if test="areaId != null and areaId != 0">
+            AND a.areaid = #{areaId}
+        </if>
+        <if test="sectionId != null and sectionId != 0">
+            AND a.sectionid = #{sectionId}
+        </if>
+        <if test="lampId != null and lampId != 0">
+            AND a.id = #{lampId}
+        </if>
+        <if test="keyword != null and keyword != ''">
+            AND a.number LIKE '%${keyword}%'
+        </if>
+        <if test="sectionList != null and sectionList.isEmpty()">
+            AND a.sectionid IN
+            <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        ORDER BY newTime DESC
+        <if test="page >= 0 and count > 0">
+            LIMIT #{page},#{count}
+        </if>
+    </select>
+
+    <delete id="deleteLampInfoCacheByDayData">
+        delete
+        from lamp_info_cache_by_day
+        where lampid = #{lampId}
+        <if test="startDate != null and startDate != ''">
+            and updatetime <![CDATA[ >= ]]> #{startDate}
+        </if>
+        <if test="endDate != null and endDate != ''">
+            and updatetime <![CDATA[ <= ]]> #{endDate}
+        </if>
+    </delete>
+
 </mapper>

+ 12 - 0
src/main/resources/mapper/LampInfoLogMapper.xml

@@ -52,4 +52,16 @@
             GROUP BY DATE_FORMAT(l.updatetime, '%Y-%m-%d %H'),l.lampid) AS A
         GROUP BY DATE_FORMAT(A.minTime,'%Y-%m-%d %H')
     </select>
+
+    <delete id="deleteLampInfoLogData">
+        delete
+        from lamp_info_log
+        where lampid = #{lampId}
+        <if test="startDate != null and startDate != ''">
+            and updatetime <![CDATA[ >= ]]> #{startDate}
+        </if>
+        <if test="endDate != null and endDate != ''">
+            and updatetime <![CDATA[ <= ]]> #{endDate}
+        </if>
+    </delete>
 </mapper>