Browse Source

Merge remote-tracking branch 'origin/CIS_V1.0' into CIS_V1.0

crazycat 11 months atrás
parent
commit
930102bc7f

+ 9 - 2
src/main/java/com/welampiot/common/InterfaceResultEnum.java

@@ -288,9 +288,16 @@ public enum InterfaceResultEnum {
 
     // 情景联动 1500-1599
     LACK_NET_ADDRESS_ERROR("1500", "请输入网关地址", "Please enter the gateway address", "Введите адрес шлюза"),
-
     LACK_GROUP_ERROR("1501", "请选择要绑定的分组", "Select the group you want to bind", "Пожалуйста, выберите группу для связывания"),
-    GROUP_REPEAT_ERROR("1502", "绑定的分组重复", "The bound group is repeated", "Связывание повторяется группой")
+    GROUP_REPEAT_ERROR("1502", "绑定的分组重复", "The bound group is repeated", "Связывание повторяется группой"),
+
+    // 交通灯 1600-1699
+    TRAFFIC_LIGHT_ADDRESS_EXIST("1600", "交通灯地址已存在", "The traffic light address already exists", "Адрес светофора уже существует"),
+    TRAFFIC_LIGHT_NAME_UNIQUE("1601","交通灯名称重复", "The traffic light name is repeated", "Название светофора повторяется"),
+    LACK_TRAFFIC_TIME_ON("1602", "缺少开始推送时间", "Missing start push time", "Отсутствует время запуска"),
+    LACK_TRAFFIC_TIME_OFF("1603", "缺少结束推送时间", "Missing end push time", "Отсутствует время остановки"),
+    LACK_TRAFFIC_PATROL_TIME("1604", "缺少间隔推送时间", "Missing interval push time", "Отсутствует время интервала"),
+    LACK_WORKER("1605", "请选择维修人员", "Select the repairman", "Пожалуйста, выберите персонал"),
     ;
     private String code;
     private String msgCn;

+ 141 - 0
src/main/java/com/welampiot/controller/TrafficLightController.java

@@ -0,0 +1,141 @@
+package com.welampiot.controller;
+
+import com.welampiot.common.BaseResult;
+import com.welampiot.common.InterfaceResultEnum;
+import com.welampiot.dto.TrafficLightDTO;
+import com.welampiot.dto.TrafficLightLogDTO;
+import com.welampiot.service.TrafficLightLogService;
+import com.welampiot.service.TrafficLightService;
+import com.welampiot.utils.ToolUtils;
+import com.welampiot.vo.TrafficLightLogVO;
+import com.welampiot.vo.TrafficLightVO;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RestController
+@CrossOrigin
+@RequestMapping("/trafficLight")
+public class TrafficLightController extends BaseController {
+
+    @Autowired
+    private TrafficLightService trafficLightService;
+
+    @Autowired
+    private TrafficLightLogService trafficLightLogService;
+
+    @Autowired
+    private ToolUtils toolUtils;
+
+    /**
+     * 获取列表
+     */
+    @RequestMapping("/getList")
+    private BaseResult<?> getList(TrafficLightVO trafficLightVO) {
+        Integer version = trafficLightVO.getVersion();
+        trafficLightVO.setPageAndCount(trafficLightVO.getPage(), trafficLightVO.getCount());
+        trafficLightVO.setSectionList(getSectionList(trafficLightVO.getUsername()));
+        List<TrafficLightDTO> list = trafficLightService.getTrafficLightListByTrafficLightVO(trafficLightVO);
+        Integer total = trafficLightService.getTrafficLightTotalByTrafficLightVO(trafficLightVO);
+        Integer onlineTotal = trafficLightService.getTrafficLightOnlineTotalByTrafficLightVO(trafficLightVO);
+        TrafficLightVO trafficLightVO1 = new TrafficLightVO();
+        trafficLightVO1.setTotal(total);
+        trafficLightVO1.setOnline(onlineTotal);
+        trafficLightVO1.setList(list);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, version, trafficLightVO1);
+    }
+
+    /**
+     * 添加编辑交通灯设备
+     */
+    @RequestMapping("/save")
+    private BaseResult<?> save(TrafficLightVO trafficLightVO) {
+        return trafficLightService.saveTrafficLightByVO(trafficLightVO);
+    }
+
+    /**
+     * 删除设备
+     */
+    @RequestMapping("/del")
+    private BaseResult<?> del(TrafficLightVO trafficLightVO) {
+        if (trafficLightVO.getId() == null || trafficLightVO.getId() == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR, trafficLightVO.getVersion());
+        trafficLightService.delTrafficLightDataById(trafficLightVO.getId());
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, trafficLightVO.getVersion());
+    }
+
+    /**
+     * 设备历史数据
+     */
+    @RequestMapping("/history")
+    private BaseResult<?> history(TrafficLightLogVO trafficLightLogVO) {
+        BaseResult<?> baseResult = checkData(trafficLightLogVO);
+        if (baseResult != null) return baseResult;
+
+        List<TrafficLightLogDTO> list = trafficLightLogService.getTrafficLightLogListByLogVO(trafficLightLogVO);
+        Integer total = trafficLightLogService.getTrafficLightLogTotalByLogVO(trafficLightLogVO);
+        TrafficLightLogVO trafficLightLogVO1 = new TrafficLightLogVO();
+        trafficLightLogVO1.setTotal(total);
+        trafficLightLogVO1.setList(list);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, trafficLightLogVO.getVersion(), trafficLightLogVO1);
+    }
+
+    private BaseResult<?> checkData(TrafficLightLogVO trafficLightLogVO) {
+        Integer version = trafficLightLogVO.getVersion();
+        trafficLightLogVO.setPageAndCount(trafficLightLogVO.getPage(), trafficLightLogVO.getCount());
+
+        if (trafficLightLogVO.getId() == null || trafficLightLogVO.getId() == 0) {
+            return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR, version);
+        }
+
+        String startDate = trafficLightLogVO.getMinDate();
+        String endDate = trafficLightLogVO.getMaxDate();
+        if (StringUtils.isBlank(startDate) || StringUtils.isBlank(endDate)) {
+            return toolUtils.response(InterfaceResultEnum.LACK_DATE_ERROR, version);
+        }
+        long startTimeStamp = ToolUtils.getTimeStamp(startDate + " 00:00:00");
+        long endTimeStamp = ToolUtils.getTimeStamp(endDate + " 23:59:59");
+        if (startTimeStamp > endTimeStamp) {
+            return toolUtils.response(InterfaceResultEnum.TIME_EXCEPTION_ERROR, version);
+        }
+        // 日期时间间隔不能大于30天
+        if (endTimeStamp - startTimeStamp > 29 * 24 * 60 * 60 * 1000L) {
+            return toolUtils.response(InterfaceResultEnum.LACK_DATE_RANGE_ERROR, version);
+        }
+        trafficLightLogVO.setMinTime(startDate + " 00:00:00");
+        trafficLightLogVO.setMaxTime(endDate + " 23:59:59");
+
+        return null;
+    }
+
+    /**
+     * 设置告警推送人员
+     */
+    @RequestMapping("/setAlarmUser")
+    private BaseResult<?> setAlarmUser(TrafficLightVO trafficLightVO) {
+        Integer version = trafficLightVO.getVersion();
+        if (trafficLightVO.getId() == null || trafficLightVO.getId() == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR, version);
+        if (trafficLightVO.getTimeOn() == null || trafficLightVO.getTimeOn().isEmpty())
+            return toolUtils.response(InterfaceResultEnum.LACK_TRAFFIC_TIME_ON, version);
+        if (trafficLightVO.getTimeOff() == null || trafficLightVO.getTimeOff().isEmpty())
+            return toolUtils.response(InterfaceResultEnum.LACK_TRAFFIC_TIME_OFF, version);
+        if (trafficLightVO.getPatrolTime() == null)
+            return toolUtils.response(InterfaceResultEnum.LACK_TRAFFIC_PATROL_TIME, version);
+        if (trafficLightVO.getWorkId() == null || trafficLightVO.getWorkId().isEmpty())
+            return toolUtils.response(InterfaceResultEnum.LACK_WORKER, version);
+        if (trafficLightVO.getTimeOn().compareTo(trafficLightVO.getTimeOff()) >= 0)
+            return toolUtils.response(InterfaceResultEnum.TIME_EXCEPTION_ERROR, version);
+
+        TrafficLightDTO trafficLightDTO = new TrafficLightDTO();
+        BeanUtils.copyProperties(trafficLightVO, trafficLightDTO);
+        trafficLightService.updateTrafficLightAlarmUser(trafficLightDTO);
+
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, version);
+    }
+}

+ 18 - 0
src/main/java/com/welampiot/dao/TrafficLightDao.java

@@ -0,0 +1,18 @@
+package com.welampiot.dao;
+
+import com.welampiot.dto.TrafficLightDTO;
+import com.welampiot.vo.TrafficLightVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface TrafficLightDao {
+    List<TrafficLightDTO> getTrafficLightListByTrafficLightVO(TrafficLightVO trafficLightVO);
+    Integer getTrafficLightTotalByTrafficLightVO(TrafficLightVO trafficLightVO);
+    Integer getTrafficLightOnlineTotalByTrafficLightVO(TrafficLightVO trafficLightVO);
+    Integer findTrafficDataCount(TrafficLightDTO trafficLightDTO);
+    void addTrafficLightData(TrafficLightDTO trafficLightDTO);
+    void updateTrafficLightData(TrafficLightDTO trafficLightDTO);
+    void delTrafficLightDataById(@Param("id") Integer id);
+    void updateTrafficLightAlarmUser(TrafficLightDTO trafficLightDTO);
+}

+ 13 - 0
src/main/java/com/welampiot/dao/TrafficLightLogDao.java

@@ -0,0 +1,13 @@
+package com.welampiot.dao;
+
+import com.welampiot.dto.TrafficLightLogDTO;
+import com.welampiot.vo.TrafficLightLogVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface TrafficLightLogDao {
+    List<TrafficLightLogDTO> getTrafficLightLogListByLogVO(TrafficLightLogVO trafficLightLogVO);
+    Integer getTrafficLightLogTotalByLogVO(TrafficLightLogVO trafficLightLogVO);
+    void delTrafficLightLogDataById(@Param("devId") Integer devId);
+}

+ 31 - 0
src/main/java/com/welampiot/dto/TrafficLightDTO.java

@@ -0,0 +1,31 @@
+package com.welampiot.dto;
+
+import lombok.Data;
+
+@Data
+public class TrafficLightDTO {
+    private Integer id;
+    private Integer sectionId;
+    private Integer areaId;
+    private String name;
+    private String address;
+    private Integer online;
+    private Double voltage;
+    private Double current;
+    /** 合闸状态:0无220V输出,1有220V输出,2重启中 */
+    private Integer status;
+    /** 0 正常,1 过压报警,2 欠压报警,3 过流报警,4 漏电报警 */
+    private Integer alarmStatus;
+    /** 过压报警阈值 */
+    private Double overVoltageValue;
+    /** 欠压报警阈值 */
+    private Double underVoltageValue;
+    /** 过流报警阈值 */
+    private Double overCurrentValue;
+    /** 漏电报警阈值 */
+    private Double leakageValue;
+    private String updateTime;
+    private String createTime;
+    private Double longitude;
+    private Double latitude;
+}

+ 32 - 0
src/main/java/com/welampiot/dto/TrafficLightLogDTO.java

@@ -0,0 +1,32 @@
+package com.welampiot.dto;
+
+import lombok.Data;
+
+@Data
+public class TrafficLightLogDTO {
+    private Integer id;
+    private Integer devId;
+    private Double voltage;
+    private Double current;
+    /** 合闸状态:0无220V输出,1有220V输出,2重启中 */
+    private Integer status;
+    /** 0 正常,1 过压报警,2 欠压报警,3 过流报警,4 漏电报警 */
+    private Integer alarmStatus;
+    /** 过压报警阈值 */
+    private Double overVoltageValue;
+    /** 欠压报警阈值 */
+    private Double underVoltageValue;
+    /** 过流报警阈值 */
+    private Double overCurrentValue;
+    /** 漏电报警阈值 */
+    private Double leakageValue;
+    private String updateTime;
+    /** 推送开始时间 */
+    private String timeOn;
+    /** 推送结束时间 */
+    private String timeOff;
+    /** 间隔推送时间(单位:秒) */
+    private Integer patrolTime;
+    /** 维修人员id(多人时,用逗号隔开) */
+    private String workId;
+}

+ 12 - 0
src/main/java/com/welampiot/service/TrafficLightLogService.java

@@ -0,0 +1,12 @@
+package com.welampiot.service;
+
+import com.welampiot.dto.TrafficLightLogDTO;
+import com.welampiot.vo.TrafficLightLogVO;
+
+import java.util.List;
+
+public interface TrafficLightLogService {
+    List<TrafficLightLogDTO> getTrafficLightLogListByLogVO(TrafficLightLogVO trafficLightLogVO);
+    Integer getTrafficLightLogTotalByLogVO(TrafficLightLogVO trafficLightLogVO);
+    void delTrafficLightLogDataById(Integer devId);
+}

+ 19 - 0
src/main/java/com/welampiot/service/TrafficLightService.java

@@ -0,0 +1,19 @@
+package com.welampiot.service;
+
+import com.welampiot.common.BaseResult;
+import com.welampiot.dto.TrafficLightDTO;
+import com.welampiot.vo.TrafficLightVO;
+
+import java.util.List;
+
+public interface TrafficLightService {
+    List<TrafficLightDTO> getTrafficLightListByTrafficLightVO(TrafficLightVO trafficLightVO);
+    Integer getTrafficLightTotalByTrafficLightVO(TrafficLightVO trafficLightVO);
+    Integer getTrafficLightOnlineTotalByTrafficLightVO(TrafficLightVO trafficLightVO);
+    BaseResult<?> saveTrafficLightByVO(TrafficLightVO trafficLightVO);
+    Integer findTrafficDataCount(TrafficLightDTO trafficLightDTO);
+    void addTrafficLightData(TrafficLightDTO trafficLightDTO);
+    void updateTrafficLightData(TrafficLightDTO trafficLightDTO);
+    void delTrafficLightDataById(Integer id);
+    void updateTrafficLightAlarmUser(TrafficLightDTO trafficLightDTO);
+}

+ 32 - 0
src/main/java/com/welampiot/service/impl/TrafficLightLogServiceImpl.java

@@ -0,0 +1,32 @@
+package com.welampiot.service.impl;
+
+import com.welampiot.dao.TrafficLightLogDao;
+import com.welampiot.dto.TrafficLightLogDTO;
+import com.welampiot.service.TrafficLightLogService;
+import com.welampiot.vo.TrafficLightLogVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class TrafficLightLogServiceImpl implements TrafficLightLogService {
+
+    @Autowired
+    private TrafficLightLogDao trafficLightLogDao;
+
+    @Override
+    public List<TrafficLightLogDTO> getTrafficLightLogListByLogVO(TrafficLightLogVO trafficLightLogVO) {
+        return trafficLightLogDao.getTrafficLightLogListByLogVO(trafficLightLogVO);
+    }
+
+    @Override
+    public Integer getTrafficLightLogTotalByLogVO(TrafficLightLogVO trafficLightLogVO) {
+        return trafficLightLogDao.getTrafficLightLogTotalByLogVO(trafficLightLogVO);
+    }
+
+    @Override
+    public void delTrafficLightLogDataById(Integer devId) {
+        trafficLightLogDao.delTrafficLightLogDataById(devId);
+    }
+}

+ 110 - 0
src/main/java/com/welampiot/service/impl/TrafficLightServiceImpl.java

@@ -0,0 +1,110 @@
+package com.welampiot.service.impl;
+
+import com.welampiot.common.BaseResult;
+import com.welampiot.common.InterfaceResultEnum;
+import com.welampiot.dao.TrafficLightDao;
+import com.welampiot.dto.TrafficLightDTO;
+import com.welampiot.service.TrafficLightLogService;
+import com.welampiot.service.TrafficLightService;
+import com.welampiot.utils.ToolUtils;
+import com.welampiot.vo.TrafficLightVO;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class TrafficLightServiceImpl implements TrafficLightService {
+
+    @Autowired
+    private TrafficLightDao trafficLightDao;
+    @Autowired
+    private TrafficLightLogService trafficLightLogService;
+    @Autowired
+    private ToolUtils toolUtils;
+
+    @Override
+    public List<TrafficLightDTO> getTrafficLightListByTrafficLightVO(TrafficLightVO trafficLightVO) {
+        return trafficLightDao.getTrafficLightListByTrafficLightVO(trafficLightVO);
+    }
+
+    @Override
+    public Integer getTrafficLightTotalByTrafficLightVO(TrafficLightVO trafficLightVO) {
+        return trafficLightDao.getTrafficLightTotalByTrafficLightVO(trafficLightVO);
+    }
+
+    @Override
+    public Integer getTrafficLightOnlineTotalByTrafficLightVO(TrafficLightVO trafficLightVO) {
+        return trafficLightDao.getTrafficLightOnlineTotalByTrafficLightVO(trafficLightVO);
+    }
+
+    @Override
+    public BaseResult<?> saveTrafficLightByVO(TrafficLightVO trafficLightVO) {
+        BaseResult<?> baseResult = checkTrafficLight(trafficLightVO);
+        if (baseResult != null) return baseResult;
+
+        TrafficLightDTO trafficLightDTO = new TrafficLightDTO();
+        BeanUtils.copyProperties(trafficLightVO, trafficLightDTO);
+        if (trafficLightVO.getId() == null || trafficLightVO.getId() == 0) {
+            addTrafficLightData(trafficLightDTO);
+        } else {
+            updateTrafficLightData(trafficLightDTO);
+        }
+
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, trafficLightVO.getVersion());
+    }
+
+    private BaseResult<?> checkTrafficLight(TrafficLightVO trafficLightVO) {
+        Integer version = trafficLightVO.getVersion();
+        if (trafficLightVO.getAddress() == null || trafficLightVO.getAddress().isEmpty())
+            return toolUtils.response(InterfaceResultEnum.LACK_DEV_ADDRESS_ERROR, version);
+        if (trafficLightVO.getName() == null || trafficLightVO.getName().isEmpty())
+            return toolUtils.response(InterfaceResultEnum.LACK_DEV_NAME_ERROR, version);
+        if (trafficLightVO.getAreaId() == null || trafficLightVO.getAreaId() == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_AREA_ERROR, version);
+        if (trafficLightVO.getSectionId() == null || trafficLightVO.getSectionId() == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_SECTION_ERROR, version);
+
+        TrafficLightDTO trafficLightDTO = new TrafficLightDTO();
+        trafficLightDTO.setId(trafficLightVO.getId());
+        trafficLightDTO.setAddress(trafficLightVO.getAddress());
+        if (findTrafficDataCount(trafficLightDTO) > 0)
+            return toolUtils.response(InterfaceResultEnum.TRAFFIC_LIGHT_ADDRESS_EXIST, version);
+
+        trafficLightDTO = new TrafficLightDTO();
+        trafficLightDTO.setName(trafficLightVO.getName());
+        trafficLightDTO.setId(trafficLightVO.getId());
+        trafficLightDTO.setSectionId(trafficLightVO.getSectionId());
+        if (findTrafficDataCount(trafficLightDTO) > 0)
+            return toolUtils.response(InterfaceResultEnum.TRAFFIC_LIGHT_NAME_UNIQUE, version);
+
+        return null;
+    }
+
+    @Override
+    public Integer findTrafficDataCount(TrafficLightDTO trafficLightDTO) {
+        return trafficLightDao.findTrafficDataCount(trafficLightDTO);
+    }
+
+    @Override
+    public void addTrafficLightData(TrafficLightDTO trafficLightDTO) {
+        trafficLightDao.addTrafficLightData(trafficLightDTO);
+    }
+
+    @Override
+    public void updateTrafficLightData(TrafficLightDTO trafficLightDTO) {
+        trafficLightDao.updateTrafficLightData(trafficLightDTO);
+    }
+
+    @Override
+    public void delTrafficLightDataById(Integer id) {
+        trafficLightLogService.delTrafficLightLogDataById(id);
+        trafficLightDao.delTrafficLightDataById(id);
+    }
+
+    @Override
+    public void updateTrafficLightAlarmUser(TrafficLightDTO trafficLightDTO) {
+        trafficLightDao.updateTrafficLightAlarmUser(trafficLightDTO);
+    }
+}

+ 18 - 0
src/main/java/com/welampiot/utils/ToolUtils.java

@@ -44,6 +44,7 @@ import java.io.*;
 import java.lang.reflect.Field;
 import java.net.*;
 import java.text.DecimalFormat;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
@@ -2590,6 +2591,23 @@ System.out.println(res);
         return cmdRsp.getInteger("Illu");
     }
 
+    /**
+     * 将时间字符串转成时间戳
+     * @param dateStr 时间字符串
+     * @return 时间戳
+     */
+    public static long getTimeStamp(String dateStr) {
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date parse;
+        try {
+            parse = dateFormat.parse(dateStr);
+            return parse.getTime();
+        } catch (ParseException e) {
+            e.printStackTrace();
+            return 0;
+        }
+    }
+
     public static void main(String[] args) {
         System.out.println(getPublicIp());
         System.out.println(formatNumber(0.0));

+ 19 - 0
src/main/java/com/welampiot/vo/TrafficLightLogVO.java

@@ -0,0 +1,19 @@
+package com.welampiot.vo;
+
+import com.welampiot.dto.TrafficLightLogDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TrafficLightLogVO extends BaseVO {
+    private Integer id;
+    private String minDate;
+    private String maxDate;
+    private String minTime;
+    private String maxTime;
+    private Integer total;
+    private List<TrafficLightLogDTO> list;
+}

+ 26 - 0
src/main/java/com/welampiot/vo/TrafficLightVO.java

@@ -0,0 +1,26 @@
+package com.welampiot.vo;
+
+import com.welampiot.dto.TrafficLightDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TrafficLightVO extends BaseVO {
+    private Integer id;
+    private Integer sectionId;
+    private Integer areaId;
+    private String name;
+    private String address;
+    private Double longitude;
+    private Double latitude;
+    private Integer total;
+    private Integer onlineTotal;
+    private List<TrafficLightDTO> list;
+    private String timeOn;
+    private String timeOff;
+    private Integer patrolTime;
+    private String workId;
+}

+ 34 - 0
src/main/resources/mapper/TrafficLightLogMapper.xml

@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.welampiot.dao.TrafficLightLogDao">
+
+    <select id="getTrafficLightLogListByLogVO" resultType="TrafficLightLogDTO">
+        select t.id,t.dev_id as devId,t.voltage,t.current,t.status,t.alarm_status as alarmStatus,
+               t.overcurrent_value as overVoltageValue,t.undervoltage_value as underVoltageValue,
+               t.overcurrent_value as overCurrentValue,t.leakage_value as leakageValue,
+               t.updatetime as updateTime
+        from traffic_light_info_log t
+        where t.dev_id = #{devId}
+        <if test="minTime != null and minTime != '' and maxTime != null and maxTime != ''">
+            and t.updatetime between #{minTime} and #{maxTime}
+        </if>
+        order by t.updatetime desc
+        <if test="page != null and count != null">
+            limit #{page},#{count}
+        </if>
+    </select>
+
+    <select id="getTrafficLightLogTotalByLogVO" resultType="Integer">
+        select count(*)
+        from traffic_light_info_log t
+        where t.dev_id = #{devId}
+        <if test="minTime != null and minTime != '' and maxTime != null and maxTime != ''">
+            and t.updatetime between #{minTime} and #{maxTime}
+        </if>
+    </select>
+
+    <delete id="delTrafficLightLogDataById">
+        delete from traffic_light_info_log where dev_id = #{devId}
+    </delete>
+
+</mapper>

+ 138 - 0
src/main/resources/mapper/TrafficLightMapper.xml

@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.welampiot.dao.TrafficLightDao">
+
+    <select id="getTrafficLightListByTrafficLightVO" resultType="TrafficLightDTO">
+        select t.id,t.sectionid as sectionId,t.areaid as areaId,t.name,t.address,
+               t.online,t.voltage,t.current,t.status,t.alarm_status as alarmStatus,
+               t.overcurrent_value as overVoltageValue,t.undervoltage_value as underVoltageValue,
+               t.overcurrent_value as overCurrentValue,t.leakage_value as leakageValue,
+               t.updatetime as updateTime,t.createtime as createTime,t.longitude,t.latitude
+        from traffic_light_info t
+        where 1=1
+        <if test="areaId != null and areaId != 0">
+            and t.areaid = #{areaId}
+        </if>
+        <if test="sectionId != null and sectionId != 0">
+            and t.sectionid = #{sectionId}
+        </if>
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and t.sectionid in
+            <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="keyword != null and keyword != ''">
+            and (t.name like '%${keyword}%' or t.address like '%${keyword}%')
+        </if>
+        <if test="online != null">
+            and t.online = #{online}
+        </if>
+        <if test="page != null and count != null">
+            limit #{page},#{count}
+        </if>
+    </select>
+
+    <select id="getTrafficLightTotalByTrafficLightVO" resultType="Integer">
+        select count(*)
+        from traffic_light_info t
+        where 1=1
+        <if test="areaId != null and areaId != 0">
+            and t.areaid = #{areaId}
+        </if>
+        <if test="sectionId != null and sectionId != 0">
+            and t.sectionid = #{sectionId}
+        </if>
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and t.sectionid in
+            <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+
+    <select id="getTrafficLightOnlineTotalByTrafficLightVO" resultType="Integer">
+        select count(*)
+        from traffic_light_info t
+        where t.online = 1
+        <if test="areaId != null and areaId != 0">
+            and t.areaid = #{areaId}
+        </if>
+        <if test="sectionId != null and sectionId != 0">
+            and t.sectionid = #{sectionId}
+        </if>
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and t.sectionid in
+            <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+    
+    <select id="findTrafficDataCount" resultType="Integer">
+        select count(*)
+        from traffic_light_info t 
+        where 1=1
+        <if test="address != null and address != ''">
+            and t.address = #{address}
+        </if>
+        <if test="sectionId != null and sectionId != 0">
+            and t.sectionid = #{sectionId}
+        </if>
+        <if test="name != null and name != ''">
+            and t.name = #{name}
+        </if>
+        <if test="id != null and id != 0">
+            and t.id != #{id}
+        </if>
+    </select>
+    
+    <insert id="addTrafficLightData" parameterType="TrafficLightDTO">
+        insert into traffic_light_info(sectionid, areaid, name, address, createtime
+                                       <if test="longitude != null">
+                                           ,longitude
+                                       </if>
+                                       <if test="latitude != null">
+                                           ,latitude
+                                       </if>)
+        values (#{sectionId}, #{areaId}, #{name}, #{address}, now()
+        <if test="longitude != null">
+            ,#{longitude}
+        </if>)
+        <if test="latitude != null">
+            ,#{latitude}
+        </if>)
+    </insert>
+
+    <update id="updateTrafficLightData" parameterType="TrafficLightDTO">
+        update traffic_light_info
+        set sectionid = #{sectionId},
+            areaid = #{areaId},
+            `name` = #{name},
+            address = #{address}
+        <if test="longitude != null">
+            ,longitude = #{longitude}
+        </if>
+        <if test="latitude != null">
+            ,latitude = #{latitude}
+        </if>
+        where id = #{id}
+    </update>
+
+    <delete id="delTrafficLightDataById">
+        delete from traffic_light_info where id = #{id}
+    </delete>
+    
+    <update id="updateTrafficLightAlarmUser" parameterType="TrafficLightDTO">
+        update
+            traffic_light_info t
+        set
+            t.time_on = #{timeOn},
+            t.time_off = #{timeOff},
+            t.patrol_time = #{patrolTime},
+            t.work_id = #{workId}
+        where
+            t.id = #{id}
+    </update>
+
+</mapper>