소스 검색

给回路中添加灯控、新建编辑回路路灯列表

zhj 2 년 전
부모
커밋
dad2898679

+ 69 - 0
src/main/java/com/welampiot/controller/LoopController.java

@@ -2,10 +2,13 @@ package com.welampiot.controller;
 
 import com.welampiot.common.BaseResult;
 import com.welampiot.common.InterfaceResultEnum;
+import com.welampiot.dto.LampInfoDTO;
 import com.welampiot.dto.LoopDTO;
+import com.welampiot.service.LampService;
 import com.welampiot.service.LoopService;
 import com.welampiot.utils.ExcelUtil;
 import com.welampiot.utils.ToolUtils;
+import com.welampiot.vo.LampVO;
 import com.welampiot.vo.LoopDetailVO;
 import com.welampiot.vo.LoopVO;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -39,6 +42,9 @@ public class LoopController {
     @Autowired
     private ToolUtils toolUtils;
 
+    @Autowired
+    private LampService lampService;
+
     /**
      * 获取回路列表
      * @param request 路段筛选,分页
@@ -298,4 +304,67 @@ public class LoopController {
         }
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
     }
+
+    /**
+     * 给回路中添加灯控
+     * @param vo 回路id,灯控id
+     * @return 给回路中添加灯控
+     */
+    @RequestMapping(value = "/addLamp", method = RequestMethod.POST)
+    public BaseResult<?> addLamp(LampVO vo) {
+        LampVO lampVO = LampVO.getLampVO(vo);
+        Integer version = lampVO.getVersion();
+        Integer loopId = lampVO.getLoopId();
+        if (loopId == null || loopId == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        String lampId = lampVO.getLampId();
+        if (lampId == null || lampId.isEmpty())
+            return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        String[] split = lampId.split(",");
+        for (String s : split) {
+            Integer integer = Integer.valueOf(s);
+            LampInfoDTO lampInfoDTO = new LampInfoDTO();
+            lampInfoDTO.setId(integer);
+            lampInfoDTO.setLoopId(loopId);
+            lampService.updateLampInfoForLoopId(lampInfoDTO);
+        }
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
+
+    /**
+     * 新建、编辑回路路灯列表
+     * @param request 回路id,路段id
+     * @return 新建、编辑回路路灯列表
+     */
+    @RequestMapping(value = "/selectLamp", method = RequestMethod.POST)
+    public BaseResult<?> selectLamp(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1);
+        Integer loopId = (Integer) toolUtils.getRequestContent(request,"loopId",1);
+        LampVO lampVO = new LampVO();
+        lampVO.setLoopId(loopId);
+        lampVO.setVersion(version);
+        lampVO.setSectionId(sectionId);
+        lampVO.setSectionList(toolUtils.getSectionList(request));
+        List<LampInfoDTO> lampInfoList = lampService.getLampInfoListForGroup(lampVO);
+        lampInfoList.forEach(dto -> {
+            if (dto.getLampStatus() != null && dto.getLampStatus() == 1) {
+                dto.setLampStatusStr("开灯");
+            } else {
+                dto.setLampStatusStr("关灯");
+            }
+            if (loopId != 0) {
+                if (dto.getLoopId() != null && dto.getLoopId().equals(loopId)) {
+                    dto.setSelect(1);
+                } else {
+                    dto.setSelect(0);
+                }
+            } else {
+                dto.setSelect(0);
+            }
+        });
+        LampVO lampVO1 = new LampVO();
+        lampVO1.setList(lampInfoList);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampVO1);
+    }
 }

+ 15 - 0
src/main/java/com/welampiot/controller/NewLampPoleController.java

@@ -1651,4 +1651,19 @@ public class NewLampPoleController {
         emergencyService.deleteEmergencyById(id);
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
     }
+
+    /**
+     * 一键报警设备列表
+     * @return 一键报警设备列表
+     */
+    @RequestMapping(value = "/emList", method = RequestMethod.POST)
+    public BaseResult<?> emList(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request, "version", 1);
+        EmergencyVO vo = new EmergencyVO();
+        vo.setSectionList(toolUtils.getSectionList(request));
+        List<EmergencyDTO> emergencyDevList = emergencyService.getEmergencyDevList(vo);
+        EmergencyVO emergencyVO = new EmergencyVO();
+        emergencyVO.setList(emergencyDevList);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,emergencyVO);
+    }
 }

+ 5 - 0
src/main/java/com/welampiot/dao/EmergencyDao.java

@@ -1,8 +1,11 @@
 package com.welampiot.dao;
 
 import com.welampiot.dto.EmergencyDTO;
+import com.welampiot.vo.EmergencyVO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * ClassName: EmergencyDao
  * Package: com.welampiot.dao
@@ -32,4 +35,6 @@ public interface EmergencyDao {
     void addEmergencyData(EmergencyDTO dto);
 
     void updateEmergencyData(EmergencyDTO dto);
+
+    List<EmergencyDTO> getEmergencyDevList(EmergencyVO vo);
 }

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

@@ -46,4 +46,6 @@ public interface LampDao {
     List<LampInfoDTO> getLampListByLampPoleId(@Param("lampPoleId") Integer lampPoleId);
     Integer getLampPoleIdByLampId(@Param("id") Integer id);
     Integer getLampCountByLampPoleId(@Param("lampPoleId") Integer lampPoleId);
+    void updateLampInfoForLoopId(LampInfoDTO dto);
+    List<LampInfoDTO> getLampInfoListForGroup(LampVO vo);
 }

+ 1 - 1
src/main/java/com/welampiot/dto/LampInfoDTO.java

@@ -29,7 +29,7 @@ public class LampInfoDTO {
     private Integer ledLuxValue;
     private Float leakageCur;
     private String networkStatus;
-    private int lampStatus;
+    private Integer lampStatus;
     private String lampStatusStr;
     private String lampOnline;
     private Integer rssi;

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

@@ -1,6 +1,9 @@
 package com.welampiot.service;
 
 import com.welampiot.dto.EmergencyDTO;
+import com.welampiot.vo.EmergencyVO;
+
+import java.util.List;
 
 /**
  * ClassName: EmergencyService
@@ -31,4 +34,6 @@ public interface EmergencyService {
     void addEmergencyData(EmergencyDTO dto);
 
     void updateEmergencyData(EmergencyDTO dto);
+
+    List<EmergencyDTO> getEmergencyDevList(EmergencyVO vo);
 }

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

@@ -47,4 +47,6 @@ public interface LampService {
     List<LampInfoDTO> getLampListByLampPoleId(Integer lampPoleId);
     Integer getLampPoleIdByLampId(Integer id);
     Integer getLampCountByLampPoleId(Integer lampPoleId);
+    void updateLampInfoForLoopId(LampInfoDTO dto);
+    List<LampInfoDTO> getLampInfoListForGroup(LampVO vo);
 }

+ 8 - 0
src/main/java/com/welampiot/service/impl/EmergencyServiceImpl.java

@@ -3,9 +3,12 @@ package com.welampiot.service.impl;
 import com.welampiot.dao.EmergencyDao;
 import com.welampiot.dto.EmergencyDTO;
 import com.welampiot.service.EmergencyService;
+import com.welampiot.vo.EmergencyVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * ClassName: EmergencyServiceImpl
  * Package: com.welampiot.service.impl
@@ -69,4 +72,9 @@ public class EmergencyServiceImpl implements EmergencyService {
     public void updateEmergencyData(EmergencyDTO dto) {
         emergencyDao.updateEmergencyData(dto);
     }
+
+    @Override
+    public List<EmergencyDTO> getEmergencyDevList(EmergencyVO vo) {
+        return emergencyDao.getEmergencyDevList(vo);
+    }
 }

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

@@ -382,6 +382,16 @@ public class LampServiceImpl implements LampService {
         return lampDao.getLampCountByLampPoleId(lampPoleId);
     }
 
+    @Override
+    public void updateLampInfoForLoopId(LampInfoDTO dto) {
+        lampDao.updateLampInfoForLoopId(dto);
+    }
+
+    @Override
+    public List<LampInfoDTO> getLampInfoListForGroup(LampVO vo) {
+        return lampDao.getLampInfoListForGroup(vo);
+    }
+
     @Override
     public Integer updateLight(LampInfoDTO lampInfoDTO) {
         return lampDao.updateLight(lampInfoDTO);

+ 23 - 0
src/main/java/com/welampiot/vo/EmergencyVO.java

@@ -0,0 +1,23 @@
+package com.welampiot.vo;
+
+import com.welampiot.dto.EmergencyDTO;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * ClassName: EmergencyVO
+ * Package: com.welampiot.vo
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/8/21 - 14:18
+ * @Version: v1.0
+ */
+@Data
+public class EmergencyVO implements Serializable {
+    private List<EmergencyDTO> list;
+
+    private List<String> sectionList;
+}

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

@@ -2,6 +2,8 @@ package com.welampiot.vo;
 
 import com.welampiot.dto.LampInfoDTO;
 import lombok.Data;
+import org.jetbrains.annotations.Contract;
+import org.jetbrains.annotations.NotNull;
 
 import java.io.Serializable;
 import java.util.List;
@@ -38,4 +40,17 @@ public class LampVO implements Serializable {
     private String path;
 
     private List<LampInfoDTO> list;
+
+    private Integer loopId;
+
+    private String lampId;
+
+    @NotNull
+    @Contract("_ -> param1")
+    public static LampVO getLampVO(@NotNull LampVO vo) {
+        if (vo.getVersion() == null) {
+            vo.setVersion(0);
+        }
+        return vo;
+    }
 }

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

@@ -102,4 +102,19 @@
             e.id = #{id}
     </update>
 
+    <select id="getEmergencyDevList" resultType="EmergencyDTO">
+        select
+            e.id,
+            e.num,
+            e.status
+        from emergency e
+        left join lamp_pole lp on lp.id = e.lamp_pole_id
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            where lp.sectionid in
+            <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+
 </mapper>

+ 51 - 0
src/main/resources/mapper/LampMapper.xml

@@ -843,5 +843,56 @@
         from lampinfo l
         where l.lamp_pole_id = #{lampPoleId}
     </select>
+
+    <update id="updateLampInfoForLoopId" parameterType="LampInfoDTO">
+        update lampinfo l
+        set
+            l.loopid = #{loopId}
+        where l.id = #{id}
+    </update>
+    
+    <select id="getLampInfoListForGroup" resultType="LampInfoDTO">
+        select
+            l.id,
+            l.number,
+            n.status as networkStatus,
+            l.status as lampStatus,
+            l.lighteness,
+            l1.gridcurr as `current`,
+            l1.gridvolt as voltage,
+            l1.grid_active_power as power,
+            n.rssi,
+            n.snr,
+            n.protocoltype as protocolType,
+            l.updatetime as updateTime,
+            s.name as section,
+            l1.work_time_total as lightTime
+            <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 l
+        left join lamp_info_log_new l1 on l1.lampid = l.id
+        left join network n on l.networkid = n.id
+        left join section s on s.id = l.sectionid
+        left join global_location gl on gl.id = s.pid
+        where 1=1
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and l.sectionid in
+            <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="sectionId != null and sectionId != 0">
+            and l.sectionid = #{secitonId}
+        </if>
+    </select>
     
 </mapper>