Преглед изворни кода

分组策略列表,详情

crazycat пре 2 година
родитељ
комит
32732e3827

+ 19 - 17
src/main/java/com/welampiot/controller/GroupController.java

@@ -113,10 +113,10 @@ public class GroupController{
         Integer id = request.getParameter("id") == null || request.getParameter("id").length() == 0? 0 : Integer.parseInt(request.getParameter("id"));
         Integer areaId = request.getParameter("areaId") == null ? 0 : Integer.parseInt(request.getParameter("areaId"));
         Integer sectionId = request.getParameter("sectionId") == null ? 0 : Integer.parseInt(request.getParameter("sectionId"));
-        Integer devType = request.getParameter("devType") == null || request.getParameter("devType").length() == 0? 0 : Integer.parseInt(request.getParameter("devType"));
+        Integer devType = request.getParameter("devType") == null || request.getParameter("devType").length() == 0 || request.getParameter("devType").equals("-")? 0 : Integer.parseInt(request.getParameter("devType"));
         Integer number = request.getParameter("number") == null ? 0 : Integer.parseInt(request.getParameter("number"));
         String name = request.getParameter("name") == null ? "" : request.getParameter("name");
-        String lampId = request.getParameter("lampid") == null ? "" : request.getParameter("lampid");
+        String lampId = request.getParameter("lampIds") == null ? "" : request.getParameter("lampIds");
         int lampCount = lampId.split(",").length;
         if (id == 0){
             GroupDTO groupDTO = new GroupDTO();
@@ -172,24 +172,26 @@ public class GroupController{
         groupService.deleteById(groupId);
         return toolUtils.response("0000",version);
     }
-//
-//    /**
-//     * 分组方案
-//     * @param request
-//     * @return
-//     */
-//    @PostMapping("/workInfo")
-//    private String workInfo(HttpServletRequest request){
-//        Integer version = (Integer) this.getRequestContent(request,"version",1);
-//        Integer groupId = (Integer) this.getRequestContent(request,"groupId",1);
-//        if (groupId == 0) return weResponse.response("0007",version);
-//
-//        Group group = groupMapper.selectById(groupId);
+
+    /**
+     * 分组方案
+     * @param request
+     * @return
+     */
+    @PostMapping("/workInfo")
+    private BaseResult workInfo(HttpServletRequest request){
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer groupId = (Integer) toolUtils.getRequestContent(request,"groupId",1);
+        if (groupId == 0) return toolUtils.response("0007",version);
+        GroupVO groupVO = new GroupVO();
+        groupVO.setId(groupId);
+        groupVO.setVersion(version);
+        GroupDTO group = groupService.getDetailByVO(groupVO);
 //        Map data = new HashMap<>();
 //        data.put("type",group.getType().toString());
 //        data.put("value",group.getValue().toString());
 //        data.put("maxLight",group.getOfflight());
 //        data.put("minLight",group.getOnlight());
-//        return weResponse.response("0000",version,data);
-//    }
+        return toolUtils.response("0000",version,group);
+    }
 }

+ 56 - 0
src/main/java/com/welampiot/controller/MapController.java

@@ -0,0 +1,56 @@
+package com.welampiot.controller;
+
+import com.welampiot.common.BaseResult;
+import com.welampiot.dto.EnvmonitorDTO;
+import com.welampiot.dto.GroupDTO;
+import com.welampiot.service.EnvmonitorService;
+import com.welampiot.service.GroupService;
+import com.welampiot.utils.ToolUtils;
+import com.welampiot.vo.GroupVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.security.acl.Group;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+
+@RequestMapping("/map")
+@CrossOrigin
+@RestController
+public class MapController{
+    @Autowired
+    private ToolUtils toolUtils;
+    @Autowired
+    private GroupService groupService;
+    @Autowired
+    private EnvmonitorService envmonitorService;
+    @PostMapping("/getIlluminance")
+    private BaseResult getIlluminance(HttpServletRequest request){
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer groupId = (Integer) toolUtils.getRequestContent(request,"groupid",1);
+        GroupVO groupVO = new GroupVO();
+        groupVO.setId(groupId);
+        groupVO.setVersion(version);
+        GroupDTO group = groupService.getDetailByVO(groupVO);
+        Map data = new HashMap<>();
+        EnvmonitorDTO envmonitorDTO = new EnvmonitorDTO();
+        ArrayList<Integer> objects = new ArrayList<>();
+        objects.add(group.getSectionId());
+        envmonitorDTO.setSectionList(objects);
+        EnvmonitorDTO detailByDTO = envmonitorService.getDetailByDTO(envmonitorDTO);
+        GroupDTO groupDTO = new GroupDTO();
+        if (detailByDTO == null){
+            data.put("status",0);
+            groupDTO.setStatus(0);
+        }else {
+            groupDTO.setStatus(1);
+            groupDTO.setLight(detailByDTO.getIllumination());
+        }
+        return toolUtils.response("0000",version,groupDTO);
+    }
+}

+ 152 - 0
src/main/java/com/welampiot/controller/PolicyController.java

@@ -0,0 +1,152 @@
+package com.welampiot.controller;
+
+import com.welampiot.common.BaseResult;
+import com.welampiot.dto.GroupDTO;
+import com.welampiot.dto.PolicyDTO;
+import com.welampiot.dto.UserDTO;
+import com.welampiot.service.GroupService;
+import com.welampiot.service.PolicyService;
+import com.welampiot.service.UserService;
+import com.welampiot.utils.ToolUtils;
+import com.welampiot.vo.GroupVO;
+import com.welampiot.vo.ListResponseVO;
+import com.welampiot.vo.PolicyVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+import static com.sun.xml.internal.ws.policy.sourcemodel.wspolicy.XmlToken.Policy;
+
+@RestController
+@CrossOrigin
+@RequestMapping("/policy")
+public class PolicyController{
+    @Autowired
+    private ToolUtils toolUtils;
+
+    @Autowired
+    private UserService userService;
+
+    @Autowired
+    private PolicyService policyService;
+
+    @Autowired
+    private GroupService groupService;
+//
+//    @Autowired
+//    private PolicyCmdMapper policyCmdMapper;
+//
+//    @Autowired
+//    private GroupMapper groupMapper;
+
+    /**
+     * 策略列表
+     * @param request
+     * @return
+     */
+    @PostMapping("/getlist")
+    private BaseResult getList(HttpServletRequest request){
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer page = (Integer) toolUtils.getRequestContent(request,"page",1);
+        Integer count = (Integer) toolUtils.getRequestContent(request,"count",1);
+        page = page == 0 ? 1 : page;
+        count = count == 0 ? 16 : count;
+        toolUtils.getSectionList(request);
+        Integer userId = toolUtils.getUser().getId();
+        Integer role = toolUtils.getUser().getRole();
+        String keyword = (String) toolUtils.getRequestContent(request,"keyword",2);
+        List userList = new ArrayList<>();
+        Map w;
+        if (role != 1){
+            userList.add(userId);
+            w = new HashMap<>();
+            w.put("parent_id",userId);
+            List<UserDTO> listByParentId = userService.getListByParentId(userId);
+            for (UserDTO user :listByParentId) {
+                userList.add(user.getId());
+            }
+        }
+        Integer limit = count;
+        Integer offset = (page-1)*count;
+        PolicyVO policyVO = new PolicyVO();
+        policyVO.setUserList(userList);
+        policyVO.setOffset(offset);
+        policyVO.setLimit(limit);
+        if (keyword != null && keyword.length() != 0) policyVO.setKeyword(keyword);
+        List<PolicyDTO> listByVO = policyService.getListByVO(policyVO);
+        policyVO = new PolicyVO();
+        policyVO.setUserList(userList);
+        if (keyword != null && keyword.length() != 0) policyVO.setKeyword(keyword);
+        Integer countByVO = policyService.getCountByVO(policyVO);
+        ListResponseVO listResponseVO = new ListResponseVO();
+        listResponseVO.setList(listByVO);
+        listResponseVO.setTotal((int)Math.ceil((double)countByVO/count));
+
+        return toolUtils.response("0000",version,listResponseVO);
+    }
+
+    /**
+     * 分组设置 策略列表
+     * @param request
+     * @return
+     */
+    @PostMapping("/groupSetList")
+    private BaseResult groupSetList(HttpServletRequest request){
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer groupId = (Integer) toolUtils.getRequestContent(request,"groupId",1);
+        toolUtils.getSectionList(request);
+        Integer userId = (Integer) toolUtils.getUser().getId();
+        Integer role = (Integer) toolUtils.getUser().getRole();
+        List userList = new ArrayList<>();
+        Map w;
+        if (role != 1){
+            userList.add(userId);
+            w = new HashMap<>();
+            w.put("parent_id",userId);
+            List<UserDTO> list = userService.getListByParentId(userId);
+            if (list != null && !list.isEmpty()){
+                for (UserDTO u :list) {
+                    userList.add(u.getId());
+                }
+            }
+        }
+        PolicyVO policyVO = new PolicyVO();
+        policyVO.setUserList(userList);
+        List<PolicyDTO> listByUser = policyService.getNavByVO(policyVO);
+        List list = new ArrayList<>();
+        if (groupId != 0){
+            GroupVO groupVO = new GroupVO();
+            groupVO.setId(groupId);
+            groupVO.setVersion(version);
+            GroupDTO group = groupService.getDetailByVO(groupVO);
+            PolicyDTO temp = null;
+            List listT = new ArrayList<>();
+            for (int i = 0; i < listByUser.size(); i++) {
+                PolicyDTO m = listByUser.get(i);
+                Integer id = m.getId();
+                if (group.getValue().intValue() == id.intValue() && group.getType() == 1){
+                    temp = m;
+                    temp.setSelect(1);
+                }else {
+                    m.setSelect(0);
+                    listT.add(m);
+                }
+            }
+            if (temp != null){
+                list.add(temp);
+            }
+            for (Object o :listT) {
+                list.add(o);
+            }
+        }
+        ListResponseVO listResponseVO = new ListResponseVO();
+        listResponseVO.setList(list);
+        return toolUtils.response("0000",version,listResponseVO);
+    }
+}

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

@@ -15,6 +15,7 @@ import java.util.List;
  */
 public interface EnvmonitorDao {
     List<EnvmonitorDTO> getWeatherListByDTO(EnvmonitorDTO dto);
+    EnvmonitorDTO getDetailByDTO(EnvmonitorDTO dto);
 
     Integer getTotalBySectionList(EnvmonitorDTO dto);
 

+ 10 - 0
src/main/java/com/welampiot/dao/PolicyCmdDao.java

@@ -0,0 +1,10 @@
+package com.welampiot.dao;
+
+import com.welampiot.dto.PolicyCmdDTO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface PolicyCmdDao {
+    List<PolicyCmdDTO> getListByPolicyId(@Param("policyId")Integer policyId);
+}

+ 11 - 0
src/main/java/com/welampiot/dao/PolicyDao.java

@@ -0,0 +1,11 @@
+package com.welampiot.dao;
+
+import com.welampiot.dto.PolicyDTO;
+import com.welampiot.vo.PolicyVO;
+
+import java.util.List;
+
+public interface PolicyDao {
+    List<PolicyDTO> getListByVO(PolicyVO policyVO);
+    Integer getCountByVO(PolicyVO policyVO);
+}

+ 2 - 2
src/main/java/com/welampiot/dto/GroupDTO.java

@@ -24,7 +24,7 @@ public class GroupDTO {
     private String createTime;
     private String updateTime;
     private Integer version;
-//    private String illumination;
-//    private String illumination;
+    private Integer status;
+    private Integer light;
 //    private String illumination;
 }

+ 46 - 0
src/main/java/com/welampiot/dto/PolicyCmdDTO.java

@@ -0,0 +1,46 @@
+package com.welampiot.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class PolicyCmdDTO {
+    private Integer id;
+    private Integer policyId;
+    private String startTime;
+    private String date;
+    private String time1;
+    private Integer value1;
+    private Integer color1;
+    private String time2;
+    private Integer value2;
+    private Integer color2;
+    private String time3;
+    private Integer value3;
+    private Integer color3;
+    private String time4;
+    private Integer value4;
+    private Integer color4;
+    private String time5;
+    private Integer value5;
+    private Integer color5;
+    private String time6;
+    private Integer value6;
+    private Integer color6;
+    private String time7;
+    private Integer value7;
+    private Integer color7;
+    private String time8;
+    private Integer value8;
+    private Integer color8;
+    private String time9;
+    private Integer value9;
+    private Integer color9;
+    private String time10;
+    private Integer value10;
+    private Integer color10;
+    private Integer policyType;
+    private Integer isDown;
+    private List value;
+}

+ 16 - 0
src/main/java/com/welampiot/dto/PolicyDTO.java

@@ -0,0 +1,16 @@
+package com.welampiot.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class PolicyDTO {
+    private Integer id;
+    private String name;
+    private Integer userId;
+    private String createTime;
+    private Integer policyType;
+    private List list;
+    private Integer select;
+}

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

@@ -16,4 +16,5 @@ public interface EnvmonitorService {
     EnvmonitorVO getWeatherList(EnvmonitorDTO dto);
 
     EnvmonitorVO getDeviceCountBySectionList(EnvmonitorDTO dto);
+    EnvmonitorDTO getDetailByDTO(EnvmonitorDTO dto);
 }

+ 10 - 0
src/main/java/com/welampiot/service/PolicyCmdService.java

@@ -0,0 +1,10 @@
+package com.welampiot.service;
+
+import com.welampiot.dto.PolicyCmdDTO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface PolicyCmdService {
+    List<PolicyCmdDTO> getListByPolicyId(@Param("policyId")Integer policyId);
+}

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

@@ -0,0 +1,12 @@
+package com.welampiot.service;
+
+import com.welampiot.dto.PolicyDTO;
+import com.welampiot.vo.PolicyVO;
+
+import java.util.List;
+
+public interface PolicyService {
+    List<PolicyDTO> getListByVO(PolicyVO policyVO);
+    Integer getCountByVO(PolicyVO policyVO);
+    public List<PolicyDTO> getNavByVO(PolicyVO policyVO);
+}

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

@@ -140,4 +140,9 @@ public class EnvmonitorServiceImpl implements EnvmonitorService {
         vo.setOnlineCount(envmonitorDao.getOnlineTotalBySectionList(dto));
         return vo;
     }
+
+    @Override
+    public EnvmonitorDTO getDetailByDTO(EnvmonitorDTO dto) {
+        return envmonitorDao.getDetailByDTO(dto);
+    }
 }

+ 21 - 0
src/main/java/com/welampiot/service/impl/PolicyCmdServiceImpl.java

@@ -0,0 +1,21 @@
+package com.welampiot.service.impl;
+
+import com.welampiot.dao.PolicyCmdDao;
+import com.welampiot.dto.PolicyCmdDTO;
+import com.welampiot.dto.PolicyDTO;
+import com.welampiot.service.PolicyCmdService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class PolicyCmdServiceImpl implements PolicyCmdService {
+    @Autowired
+    private PolicyCmdDao policyCmdDao;
+    @Override
+    public List<PolicyCmdDTO> getListByPolicyId(Integer policyId) {
+        List<PolicyCmdDTO> listByPolicyId = policyCmdDao.getListByPolicyId(policyId);
+        return listByPolicyId;
+    }
+}

+ 122 - 0
src/main/java/com/welampiot/service/impl/PolicyServiceImpl.java

@@ -0,0 +1,122 @@
+package com.welampiot.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.TypeReference;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.welampiot.dao.PolicyDao;
+import com.welampiot.dto.PolicyCmdDTO;
+import com.welampiot.dto.PolicyDTO;
+import com.welampiot.service.PolicyCmdService;
+import com.welampiot.service.PolicyService;
+import com.welampiot.vo.PolicyVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class PolicyServiceImpl implements PolicyService {
+    @Autowired
+    private PolicyDao policyDao;
+    @Autowired
+    private PolicyCmdService policyCmdService;
+    @Override
+    public List<PolicyDTO> getListByVO(PolicyVO policyVO) {
+        List<PolicyDTO> listByVO = policyDao.getListByVO(policyVO);
+        List<PolicyDTO> list = new ArrayList<>();
+        for (PolicyDTO policy :listByVO) {
+            List<PolicyCmdDTO> listByPolicyId = policyCmdService.getListByPolicyId(policy.getId());
+
+            List tList = new ArrayList<>();
+            for (PolicyCmdDTO p :listByPolicyId) {
+                String jsonStr = JSON.toJSONString(p, SerializerFeature.WriteDateUseDateFormat);
+                Map<String, Object> map = JSON.parseObject(jsonStr, new TypeReference<Map<String, Object>>() {
+                });
+                List timeList = new ArrayList<>();
+                for (int i = 1; i <= 10; i++) {
+                    if (map.containsKey("time"+i) && map.get("time"+i) != null && !map.get("time"+i).equals("")){
+                        Integer n = i + 1;
+                        if (map.containsKey("time"+n) && map.get("time"+n) != null && !map.get("time"+n).equals("")){
+                            String timeValue = map.get("time"+i)+"-"+map.get("time"+n)+" 亮度"+map.get("value"+i)+"%";
+                            timeList.add(timeValue);
+                        }else {
+                            String timeValue = map.get("time"+i)+"-以后"+" 亮度"+map.get("value"+i)+"%";
+                            timeList.add(timeValue);
+                            break;
+                        }
+                    }
+                }
+                PolicyCmdDTO policyCmdDTO = new PolicyCmdDTO();
+                policyCmdDTO.setDate(p.getStartTime());
+                policyCmdDTO.setValue(timeList);
+                tList.add(policyCmdDTO);
+            }
+            policy.setList(tList);
+            list.add(policy);
+        }
+        return list;
+    }
+
+    @Override
+    public Integer getCountByVO(PolicyVO policyVO) {
+        return policyDao.getCountByVO(policyVO);
+    }
+
+    @Override
+    public List<PolicyDTO> getNavByVO(PolicyVO policyVO) {
+        List<PolicyDTO> listByVO = policyDao.getListByVO(policyVO);
+
+        List<PolicyCmdDTO> policyCmdList = policyCmdService.getListByPolicyId(0);
+
+        HashMap<Object, Object> objectObjectHashMap = new HashMap<>();
+        for (PolicyCmdDTO p :policyCmdList) {
+            Integer policyId = p.getPolicyId();
+            if (objectObjectHashMap.containsKey(policyId)){
+                List l = (List) objectObjectHashMap.get(policyId);
+                l.add(p);
+                objectObjectHashMap.put(policyId,l);
+            }else {
+                List l = new ArrayList<>();
+                l.add(p);
+                objectObjectHashMap.put(policyId,l);
+            }
+        }
+
+        List<PolicyDTO> list = new ArrayList<>();
+        for (PolicyDTO policy :listByVO) {
+//            List<PolicyCmdDTO> listByPolicyId = policyCmdService.getListByPolicyId(policy.getId());
+            List<PolicyCmdDTO> listByPolicyId = (List<PolicyCmdDTO>) objectObjectHashMap.get(policy.getId());
+
+            List tList = new ArrayList<>();
+            for (PolicyCmdDTO p :listByPolicyId) {
+                String jsonStr = JSON.toJSONString(p, SerializerFeature.WriteDateUseDateFormat);
+                Map<String, Object> map = JSON.parseObject(jsonStr, new TypeReference<Map<String, Object>>() {
+                });
+                List timeList = new ArrayList<>();
+                for (int i = 1; i <= 10; i++) {
+                    if (map.containsKey("time"+i) && map.get("time"+i) != null && !map.get("time"+i).equals("")){
+                        Integer n = i + 1;
+                        if (map.containsKey("time"+n) && map.get("time"+n) != null && !map.get("time"+n).equals("")){
+                            String timeValue = map.get("time"+i)+"-"+map.get("time"+n)+" 亮度"+map.get("value"+i)+"%";
+                            timeList.add(timeValue);
+                        }else {
+                            String timeValue = map.get("time"+i)+"-以后"+" 亮度"+map.get("value"+i)+"%";
+                            timeList.add(timeValue);
+                            break;
+                        }
+                    }
+                }
+                PolicyCmdDTO policyCmdDTO = new PolicyCmdDTO();
+                policyCmdDTO.setDate(p.getStartTime());
+                policyCmdDTO.setValue(timeList);
+                tList.add(policyCmdDTO);
+            }
+            policy.setList(tList);
+            list.add(policy);
+        }
+        return list;
+    }
+}

+ 1 - 0
src/main/java/com/welampiot/vo/ListResponseVO.java

@@ -7,4 +7,5 @@ import java.util.List;
 @Data
 public class ListResponseVO {
     private List list;
+    private Integer total;
 }

+ 13 - 0
src/main/java/com/welampiot/vo/PolicyVO.java

@@ -0,0 +1,13 @@
+package com.welampiot.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class PolicyVO {
+    private List userList;
+    private Integer limit;
+    private Integer offset;
+    private String keyword;
+}

+ 15 - 1
src/main/resources/mapper/EnvmonitorMapper.xml

@@ -56,5 +56,19 @@
             </foreach>
         </if>
     </select>
-
+    <select id="getDetailByDTO" resultType="EnvmonitorDTO">
+        select eil.illumination
+        from envmonitor e
+        left join (SELECT t1.* FROM envmonitor_info_log t1
+        INNER JOIN ( SELECT envmonitorid, MAX( updatetime ) AS maxDateTime FROM envmonitor_info_log GROUP BY envmonitorid ) t2
+        ON t1.envmonitorid = t2.envmonitorid AND t1.updatetime = t2.maxDateTime) as eil on e.id = eil.envmonitorid
+        where e.lamp_pole_id != 0
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and e.sectionid in
+            <foreach collection="sectionList" item="dto" open="(" separator="," close=")">
+                #{dto}
+            </foreach>
+        </if>
+        limit 1
+    </select>
 </mapper>

+ 83 - 0
src/main/resources/mapper/PolicyCmdMapper.xml

@@ -0,0 +1,83 @@
+<?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.PolicyCmdDao">
+    <select id="getListByPolicyId" parameterType="Integer" resultType="com.welampiot.dto.PolicyCmdDTO">
+        select
+        id,policyid as policyId,starttime as startTime,
+        time1,value1,color1,
+        time2,value2,color2,
+        time3,value3,color3,
+        time4,value4,color4,
+        time5,value5,color5,
+        time6,value6,color6,
+        time7,value7,color7,
+        time8,value8,color8,
+        time9,value9,color9,
+        time10,value10,color10,
+        is_down as isDown,policyType
+        from `policy_cmd`
+        <if test="policyId != 0">
+            where policyid=#{policyId}
+        </if>
+    </select>
+
+    <select id="getListByVO" parameterType="com.welampiot.vo.PolicyVO" resultType="com.welampiot.dto.PolicyDTO">
+        select name,userid as userId,createtime as createTime,policyType
+        from `policy`
+        where 1=1
+        <if test="userList != null and !userList.isEmpty()">
+            and userid in
+            <foreach item="vo" collection="userList" open="(" separator="," close=")">
+                #{vo}
+            </foreach>
+        </if>
+        <if test="keyword != null">
+            and name like '%#{keyword}%'
+        </if>
+        order by name asc
+        <if test="offset != null and limit != null">
+            limit #{offset},#{limit}
+        </if>
+    </select>
+    <select id="getCountByVO" parameterType="com.welampiot.vo.PolicyVO" resultType="Integer">
+        select count(*)
+        from `policy`
+        where 1=1
+        <if test="userList != null and !userList.isEmpty()">
+            and userid in
+            <foreach item="vo" collection="userList" open="(" separator="," close=")">
+                #{vo}
+            </foreach>
+        </if>
+        <if test="keyword != null">
+            and name like '%#{keyword}%'
+        </if>
+    </select>
+
+    <insert id="add" parameterType="com.welampiot.dto.GroupDTO" useGeneratedKeys="true" keyProperty="id"
+    >
+        insert into `group` (name,number,lampid,areaid,sectionid,lampcount,createtime,devType,updatetime
+        )
+        values
+        (#{name},#{number},#{lampId},#{areaId},#{sectionId},#{lampCount},#{createTime},#{devType},#{updateTime}
+
+        )
+    </insert>
+    <update id="update" parameterType="com.welampiot.dto.GroupDTO" useGeneratedKeys="true" keyProperty="id"
+    >
+        update `group` set
+        name = #{name},
+        number = #{number},
+        lampid = #{lampId},
+        areaid = #{areaId},
+        sectionid = #{sectionId},
+        lampcount = #{lampCount},
+        devType = #{devType},
+        updatetime = #{updateTime}
+
+        where id = #{id}
+    </update>
+    <delete id="deleteById">
+        delete from `group` where id=#{id};
+    </delete>
+</mapper>

+ 109 - 0
src/main/resources/mapper/PolicyMapper.xml

@@ -0,0 +1,109 @@
+<?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.PolicyDao">
+    <select id="getListByVO" parameterType="com.welampiot.vo.PolicyVO" resultType="com.welampiot.dto.PolicyDTO">
+        select id,name,userid as userId,createtime as createTime,policyType
+        from `policy`
+        where 1=1
+        <if test="userList != null and !userList.isEmpty()">
+            and userid in
+            <foreach item="vo" collection="userList" open="(" separator="," close=")">
+                #{vo}
+            </foreach>
+        </if>
+        <if test="keyword != null">
+            and name like '%#{keyword}%'
+        </if>
+        order by name asc
+        <if test="offset != null and limit != null">
+            limit #{offset},#{limit}
+        </if>
+    </select>
+    <select id="getCountByVO" parameterType="com.welampiot.vo.PolicyVO" resultType="Integer">
+        select count(*)
+        from `policy`
+        where 1=1
+        <if test="userList != null and !userList.isEmpty()">
+            and userid in
+            <foreach item="vo" collection="userList" open="(" separator="," close=")">
+                #{vo}
+            </foreach>
+        </if>
+        <if test="keyword != null">
+            and name like '%#{keyword}%'
+        </if>
+    </select>
+
+    <select id="getDetailByVO" parameterType="com.welampiot.vo.GroupVO" resultType="com.welampiot.dto.GroupDTO">
+        select
+        g.name,g.number,g.id,g.areaid as areaId,g.sectionid as sectionId,(select count(id) from lampinfo where find_in_set(id,g.lampid)) as lampCount,g.type,g.value,s.name as section,g.lampid as lampId,
+        <choose>
+            <when test="version == 1">
+                gl.english_name as area
+            </when>
+            <when test="version == 2">
+                gl.ru_name as area
+            </when>
+            <otherwise>
+                gl.chinese_name as area
+            </otherwise>
+        </choose>
+        from `group` as g
+        left join section s on g.sectionid = s.id
+        left join global_location gl on gl.id = s.pid
+        where g.id=#{id}
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and g.sectionid in
+            <foreach item="vo" collection="sectionList" open="(" separator="," close=")">
+                #{vo}
+            </foreach>
+        </if>
+        limit 1
+    </select>
+
+<!--    <insert id="add" parameterType="com.welampiot.dto.GroupDTO" useGeneratedKeys="true" keyProperty="id"-->
+<!--    >-->
+<!--        insert into `group` (name,number,lampid,areaid,sectionid,lampcount,createtime,devType,updatetime-->
+<!--        )-->
+<!--        values-->
+<!--        (#{name},#{number},#{lampId},#{areaId},#{sectionId},#{lampCount},#{createTime},#{devType},#{updateTime}-->
+
+<!--        )-->
+<!--    </insert>-->
+
+<!--    <select id="checkData" resultType="Integer" parameterType="com.welampiot.dto.GroupDTO">-->
+<!--        select count(id) from `group`-->
+<!--        where 1=1-->
+<!--        <if test="sectionId != null">-->
+<!--            and sectionid = #{sectionId}-->
+<!--        </if>-->
+<!--        <if test="name != null">-->
+<!--            and name = #{name}-->
+<!--        </if>-->
+<!--        <if test="number != null">-->
+<!--            and number = #{number}-->
+<!--        </if>-->
+<!--        <if test="id != null">-->
+<!--            and id != #{id}-->
+<!--        </if>-->
+<!--    </select>-->
+
+<!--    <update id="update" parameterType="com.welampiot.dto.GroupDTO" useGeneratedKeys="true" keyProperty="id"-->
+<!--    >-->
+<!--        update `group` set-->
+<!--        name = #{name},-->
+<!--        number = #{number},-->
+<!--        lampid = #{lampId},-->
+<!--        areaid = #{areaId},-->
+<!--        sectionid = #{sectionId},-->
+<!--        lampcount = #{lampCount},-->
+<!--        devType = #{devType},-->
+<!--        updatetime = #{updateTime}-->
+
+<!--        where id = #{id}-->
+<!--    </update>-->
+
+<!--    <delete id="deleteById">-->
+<!--        delete from `group` where id=#{id};-->
+<!--    </delete>-->
+</mapper>