Sfoglia il codice sorgente

给分组中添加灯控、分组设置获取策略列表、巡检时间下拉

zhj 2 anni fa
parent
commit
e5c7f6cf36

+ 28 - 0
src/main/java/com/welampiot/controller/CommonController.java

@@ -4,9 +4,11 @@ import com.welampiot.common.BaseResult;
 import com.welampiot.common.InterfaceResultEnum;
 import com.welampiot.dto.AlarmTypeDTO;
 import com.welampiot.dto.GlobalLocationDTO;
+import com.welampiot.dto.InspectionTimeDTO;
 import com.welampiot.service.GlobalLocationService;
 import com.welampiot.utils.ToolUtils;
 import com.welampiot.vo.AlarmTypeVO;
+import com.welampiot.vo.InspectionTimeVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -193,4 +195,30 @@ public class CommonController {
         alarmTypeVO.setList(list);
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,alarmTypeVO);
     }
+
+    /**
+     * 巡检时间下拉列表
+     * @param vo version
+     * @return 巡检时间下拉列表
+     */
+    @RequestMapping(value = "/inspectionTime", method = RequestMethod.POST)
+    public BaseResult<?> inspectionTime(InspectionTimeVO vo) {
+        InspectionTimeVO inspectionTimeVO = InspectionTimeVO.getInspectionTimeVO(vo);
+        Integer version = inspectionTimeVO.getVersion();
+        List<InspectionTimeDTO> list = new ArrayList<>();
+        list.add(new InspectionTimeDTO(0,"关闭巡检"));
+        list.add(new InspectionTimeDTO(5,"5分钟"));
+        list.add(new InspectionTimeDTO(10,"10分钟"));
+        list.add(new InspectionTimeDTO(30,"30分钟"));
+        list.add(new InspectionTimeDTO(55,"55分钟"));
+        list.add(new InspectionTimeDTO(58,"58分钟"));
+        list.add(new InspectionTimeDTO(59,"59分钟"));
+        list.add(new InspectionTimeDTO(60,"1小时"));
+        list.add(new InspectionTimeDTO(120,"2小时"));
+        list.add(new InspectionTimeDTO(360,"6小时"));
+        list.add(new InspectionTimeDTO(720,"12小时"));
+        InspectionTimeVO inspectionTimeVO1 = new InspectionTimeVO();
+        inspectionTimeVO1.setList(list);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,inspectionTimeVO1);
+    }
 }

+ 47 - 5
src/main/java/com/welampiot/controller/GroupController.java

@@ -8,13 +8,11 @@ import com.welampiot.utils.ToolUtils;
 import com.welampiot.vo.GroupVO;
 import com.welampiot.vo.LampListResponseVO;
 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 org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
 
 @RestController
 @CrossOrigin
@@ -195,4 +193,48 @@ public class GroupController{
 //        data.put("minLight",group.getOnlight());
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,group);
     }
+
+    /**
+     * 给分组中添加灯控
+     * @param vo 分组id
+     * @return 给分组中添加灯控
+     */
+    @RequestMapping(value = "/addLamp", method = RequestMethod.POST)
+    public BaseResult<?> addLamp(GroupVO vo) {
+        GroupVO groupVO = GroupVO.getGroupVO(vo);
+        Integer version = groupVO.getVersion();
+        Integer id = groupVO.getId();
+        if (id == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        String lampId = groupVO.getLampId();
+        if (lampId == null || lampId.length() == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        GroupDTO groupDTO = groupService.getGroupDTOById(id);
+        if (groupDTO == null || groupDTO.getDevType() == 1)
+            return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
+        GroupDTO dto = new GroupDTO();
+        dto.setId(id);
+        dto.setLampId(lampId);
+        groupService.updateGroupLampId(dto);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
+
+    /**
+     * 获取分组巡检时间设置
+     * @param vo 分组id
+     * @return 获取分组巡检时间设置
+     */
+    @RequestMapping(value = "/inspectionGet", method = RequestMethod.POST)
+    public BaseResult<?> inspectionGet(GroupVO vo) {
+        GroupVO groupVO = GroupVO.getGroupVO(vo);
+        Integer version = groupVO.getVersion();
+        Integer id = groupVO.getId();
+        if (id == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        GroupDTO groupDTO = groupService.getGroupDTOById(id);
+        if (groupDTO == null)
+            return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
+        Integer patrolInterval = groupDTO.getPatrolInterval();
+        GroupVO groupVO1 = new GroupVO();
+        groupVO1.setPatrolInterval(patrolInterval);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,groupVO1);
+    }
 }

+ 64 - 8
src/main/java/com/welampiot/controller/PolicyController.java

@@ -2,10 +2,7 @@ package com.welampiot.controller;
 
 import com.welampiot.common.BaseResult;
 import com.welampiot.common.InterfaceResultEnum;
-import com.welampiot.dto.GroupDTO;
-import com.welampiot.dto.PolicyCmdDTO;
-import com.welampiot.dto.PolicyDTO;
-import com.welampiot.dto.UserDTO;
+import com.welampiot.dto.*;
 import com.welampiot.service.GroupService;
 import com.welampiot.service.PolicyCmdService;
 import com.welampiot.service.PolicyService;
@@ -13,14 +10,13 @@ import com.welampiot.service.UserService;
 import com.welampiot.utils.ToolUtils;
 import com.welampiot.vo.GroupVO;
 import com.welampiot.vo.ListResponseVO;
+import com.welampiot.vo.PolicyDetailsVO;
 import com.welampiot.vo.PolicyVO;
 import org.json.JSONArray;
 import org.json.JSONObject;
+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.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import java.lang.reflect.Field;
@@ -256,4 +252,64 @@ public class PolicyController{
         }
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,policyVO);
     }
+
+    /**
+     * 策略详情
+     * @param vo 策略id
+     * @return 策略详情
+     */
+    @RequestMapping(value = "/details", method = RequestMethod.POST)
+    public BaseResult<?> details(PolicyVO vo) throws NoSuchFieldException, IllegalAccessException {
+        PolicyVO policyVO = PolicyVO.getPolicyVO(vo);
+        Integer version = policyVO.getVersion();
+        Integer id = policyVO.getId();
+        if (id == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        PolicyDTO policyDTO = policyService.getPolicyDTOById(id);
+        List<PolicyCmdDTO> cmdList = policyCmdService.getListByPolicyId(id);
+        List<PolicyContentDTO> content = new ArrayList<>();
+        for (PolicyCmdDTO p : cmdList) {
+            List<PolicyTimeValueDTO> timeList = new ArrayList<>();
+            for (int i = 1; i <= 10; i ++) {
+                Field fieldTime = p.getClass().getDeclaredField("time" + i);
+                fieldTime.setAccessible(true);
+                String time = (String) fieldTime.get(p);
+                if (time == null || time.length() == 0) break;
+                Field fieldColor = p.getClass().getDeclaredField("color" + i);
+                fieldColor.setAccessible(true);
+                Integer color = (Integer) fieldColor.get(p);
+                Field fieldValue = p.getClass().getDeclaredField("value" + i);
+                fieldValue.setAccessible(true);
+                Integer value = (Integer) fieldValue.get(p);
+                PolicyTimeValueDTO valueDTO = new PolicyTimeValueDTO();
+                valueDTO.setTime(time);
+                valueDTO.setColor(color);
+                valueDTO.setValue(value);
+                timeList.add(valueDTO);
+            }
+            PolicyContentDTO contentDTO = new PolicyContentDTO();
+            contentDTO.setDate(p.getStartTime());
+            contentDTO.setTimeList(timeList);
+            content.add(contentDTO);
+        }
+        policyDTO.setContent(content);
+        PolicyDetailsVO policyDetailsVO = new PolicyDetailsVO();
+        BeanUtils.copyProperties(policyDTO,policyDetailsVO);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,policyDetailsVO);
+    }
+
+    /**
+     * 删除策略
+     * @param vo 策略id
+     * @return 删除策略
+     */
+    @RequestMapping(value = "/del", method = RequestMethod.POST)
+    public BaseResult<?> del(PolicyVO vo) {
+        PolicyVO policyVO = PolicyVO.getPolicyVO(vo);
+        Integer version = policyVO.getVersion();
+        Integer id = policyVO.getId();
+        if (id == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        policyService.deletePolicyDataById(id);
+        policyCmdService.deletePolicyCmdDataByPolicyId(id);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
 }

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

@@ -19,4 +19,5 @@ public interface GroupDao {
     String findPolicyNameByValue(@Param("id") Integer id);
     Integer getGroupTotalByDTO(GroupDTO dto);
     GroupDTO getGroupDTOById(@Param("id") Integer id);
+    void updateGroupLampId(GroupDTO dto);
 }

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

@@ -15,4 +15,6 @@ public interface PolicyDao {
     Integer getAllPolicyCount();
     void addPolicyData(PolicyDTO dto);
     void updatePolicyData(PolicyDTO dto);
+    PolicyDTO getPolicyDTOById(@Param("id") Integer id);
+    void deletePolicyDataById(@Param("id") Integer id);
 }

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

@@ -29,5 +29,6 @@ public class GroupDTO {
     private Integer status;
     private Integer light;
     private Integer timezone;
+    private Integer patrolInterval;
     private List<Integer> sectionList;
 }

+ 25 - 0
src/main/java/com/welampiot/dto/InspectionTimeDTO.java

@@ -0,0 +1,25 @@
+package com.welampiot.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * ClassName: InspectionTimeDTO
+ * Package: com.welampiot.dto
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/8/16 - 17:50
+ * @Version: v1.0
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class InspectionTimeDTO implements Serializable {
+    private Integer key;
+
+    private String value;
+}

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

@@ -21,4 +21,5 @@ public interface GroupService {
     String findPolicyNameByValue(Integer id);
     Integer getGroupTotalByDTO(GroupDTO dto);
     GroupDTO getGroupDTOById(Integer id);
+    void updateGroupLampId(GroupDTO dto);
 }

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

@@ -15,4 +15,6 @@ public interface PolicyService {
     Integer getAllPolicyCount();
     void addPolicyData(PolicyDTO dto);
     void updatePolicyData(PolicyDTO dto);
+    PolicyDTO getPolicyDTOById(Integer id);
+    void deletePolicyDataById(Integer id);
 }

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

@@ -180,4 +180,9 @@ public class GroupServiceImpl implements GroupService {
     public GroupDTO getGroupDTOById(Integer id) {
         return groupDao.getGroupDTOById(id);
     }
+
+    @Override
+    public void updateGroupLampId(GroupDTO dto) {
+        groupDao.updateGroupLampId(dto);
+    }
 }

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

@@ -149,4 +149,14 @@ public class PolicyServiceImpl implements PolicyService {
     public void updatePolicyData(PolicyDTO dto) {
         policyDao.updatePolicyData(dto);
     }
+
+    @Override
+    public PolicyDTO getPolicyDTOById(Integer id) {
+        return policyDao.getPolicyDTOById(id);
+    }
+
+    @Override
+    public void deletePolicyDataById(Integer id) {
+        policyDao.deletePolicyDataById(id);
+    }
 }

+ 12 - 0
src/main/java/com/welampiot/vo/GroupVO.java

@@ -15,4 +15,16 @@ public class GroupVO {
     private Integer version;
     private List list;
     private Integer total;
+    private String lampId;
+    private Integer patrolInterval;
+
+    public static GroupVO getGroupVO(GroupVO vo) {
+        if (vo.getVersion() == null) {
+            vo.setVersion(0);
+        }
+        if (vo.getId() == null) {
+            vo.setId(0);
+        }
+        return vo;
+    }
 }

+ 34 - 0
src/main/java/com/welampiot/vo/InspectionTimeVO.java

@@ -0,0 +1,34 @@
+package com.welampiot.vo;
+
+import com.welampiot.dto.InspectionTimeDTO;
+import lombok.Data;
+import org.jetbrains.annotations.Contract;
+import org.jetbrains.annotations.NotNull;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * ClassName: InspectionTimeVO
+ * Package: com.welampiot.vo
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/8/16 - 17:57
+ * @Version: v1.0
+ */
+@Data
+public class InspectionTimeVO implements Serializable {
+    private Integer version;
+
+    private List<InspectionTimeDTO> list;
+
+    @NotNull
+    @Contract("_ -> param1")
+    public static InspectionTimeVO getInspectionTimeVO(@NotNull InspectionTimeVO vo) {
+        if (vo.getVersion() == null) {
+            vo.setVersion(0);
+        }
+        return vo;
+    }
+}

+ 27 - 0
src/main/java/com/welampiot/vo/PolicyDetailsVO.java

@@ -0,0 +1,27 @@
+package com.welampiot.vo;
+
+import com.welampiot.dto.PolicyContentDTO;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * ClassName: PolicyDetailsVO
+ * Package: com.welampiot.vo
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/8/16 - 15:45
+ * @Version: v1.0
+ */
+@Data
+public class PolicyDetailsVO implements Serializable {
+    private Integer id;
+
+    private String name;
+
+    private Integer policyType;
+
+    private List<PolicyContentDTO> content;
+}

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

@@ -2,6 +2,8 @@ package com.welampiot.vo;
 
 import com.welampiot.dto.PolicyDTO;
 import lombok.Data;
+import org.jetbrains.annotations.Contract;
+import org.jetbrains.annotations.NotNull;
 
 import java.util.List;
 
@@ -14,4 +16,17 @@ public class PolicyVO {
     private List<PolicyDTO> list;
     private Integer total;
     private Integer id;
+    private Integer version;
+
+    @NotNull
+    @Contract("_ -> param1")
+    public static PolicyVO getPolicyVO(@NotNull PolicyVO vo) {
+        if (vo.getId() == null) {
+            vo.setId(0);
+        }
+        if (vo.getVersion() == null) {
+            vo.setVersion(0);
+        }
+        return vo;
+    }
 }

+ 11 - 1
src/main/resources/mapper/GroupMapper.xml

@@ -186,9 +186,19 @@
         select
             g.id,
             g.lampid as lampId,
-            g.devType
+            g.devType,
+            g.patrolinterval as patrolInterval
         from `group` g
         where g.id = #{id}
     </select>
 
+    <update id="updateGroupLampId" parameterType="GroupDTO">
+        update
+            `group` g
+        set
+            g.lampid = #{lampId}
+        where
+            g.id = #{id}
+    </update>
+
 </mapper>

+ 10 - 10
src/main/resources/mapper/PolicyCmdMapper.xml

@@ -150,16 +150,16 @@
 
     <select id="getPolicyCmdListByDTO" resultType="com.welampiot.dto.PolicyCmdDTO">
         select p.starttime as startTime,
-               time1,value1,
-               time2,value2,
-               time3,value3,
-               time4,value4,
-               time5,value5,
-               time6,value6,
-               time7,value7,
-               time8,value8,
-               time9,value9,
-               time10,value10
+               p.time1,p.value1,p.color1,
+               p.time2,p.value2,p.color2,
+               p.time3,p.value3,p.color3,
+               p.time4,p.value4,p.color4,
+               p.time5,p.value5,p.color5,
+               p.time6,p.value6,p.color6,
+               p.time7,p.value7,p.color7,
+               p.time8,p.value8,p.color8,
+               p.time9,p.value9,p.color9,
+               p.time10,p.value10,p.color10
         from policy_cmd p
         where p.policyid = #{policyId}
     </select>

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

@@ -150,5 +150,20 @@
         where
             p.id = #{id}
     </update>
+
+    <select id="getPolicyDTOById" resultType="PolicyDTO">
+        select
+            p.id,
+            p.name,
+            p.policyType
+        from policy p
+        where p.id = #{id}
+    </select>
+
+    <delete id="deletePolicyDataById">
+        delete
+        from policy
+        where id = #{id};
+    </delete>
     
 </mapper>