Parcourir la source

2022-12-9 风险处置,细节代码调整。

chaiyunlong il y a 3 ans
Parent
commit
08b92c3247

+ 4 - 4
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabBuildFloorController.java

@@ -122,11 +122,11 @@ public class LabBuildFloorController  extends BaseController<LabBuildFloor> {
 
 
     /**
-     * 查询楼栋(楼层)列表
+     * 查询登录人管理的实验室的楼栋(楼层)列表
      */
     @GetMapping("/getBuildOrFloorList")
-    @ApiOperation(value = "查询楼栋(楼层)列表")
-    public ResultData getBuildOrFloorList(LabBuildFloor labBuildFloor) {
-        return ResultData.success(labBuildFloorService.selectLabBuildFloorList(labBuildFloor));
+    @ApiOperation(value = "查询登录人管理的实验室的楼栋(楼层)列表")
+    public ResultData getBuildOrFloorList(LabBuildFloorVo labBuildFloorVo) {
+        return ResultData.success(labBuildFloorService.getBuildOrFloorList(labBuildFloorVo));
     }
 }

+ 19 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabExitLineVertexController.java

@@ -8,6 +8,7 @@ import com.zd.common.core.redis.RedisService;
 import com.zd.common.core.web.controller.BaseController;
 import com.zd.common.swagger.config.Knife4jConfiguration;
 import com.zd.laboratory.domain.LabExitLineVertex;
+import com.zd.laboratory.domain.LabExitPointRelay;
 import com.zd.laboratory.domain.vo.LabExitLineEvacuationVo;
 import com.zd.laboratory.domain.vo.LabExitLineVertexInfoVo;
 import com.zd.laboratory.domain.vo.LabExitLineVertexVo;
@@ -132,6 +133,24 @@ public class LabExitLineVertexController extends BaseController {
     }
 
     /**
+     * 手动执行开灯
+     */
+    @PostMapping("/openLight")
+    @ApiOperation(value = "手动执行开灯")
+    public ResultData openLight(@RequestBody LabExitPointRelay labExitPointRelay) {
+        return ResultData.success(labExitLineVertexService.openLight(labExitPointRelay));
+    }
+
+    /**
+     * 手动执行关灯
+     */
+    @PostMapping("/closeLight")
+    @ApiOperation(value = "手动执行开灯")
+    public ResultData closeLight(@RequestBody LabExitPointRelay labExitPointRelay) {
+        return ResultData.success(labExitLineVertexService.closeLight(labExitPointRelay));
+    }
+
+    /**
      * 修改逃生线路主
      */
     @ApiOperation(value = "修改逃生线路主")

+ 4 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/LabBuildFloorLayoutVo.java

@@ -41,4 +41,8 @@ public class LabBuildFloorLayoutVo extends LabBuildFloorLayout {
     /** 实验室在线人员 */
     @ApiModelProperty(value = "实验室在线人员")
     private Integer online;
+
+    /** 是否是登录人的实验室 */
+    @ApiModelProperty(value = "是否是登录人的实验室")
+    private boolean loginAdmin;
 }

+ 8 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/LabBuildFloorVo.java

@@ -2,6 +2,7 @@ package com.zd.laboratory.domain.vo;
 
 import com.zd.laboratory.domain.LabBuildFloor;
 import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.util.ArrayList;
@@ -19,4 +20,11 @@ public class LabBuildFloorVo extends LabBuildFloor {
 
     private List <LabBuildFloorVo> buildFloorVoList = new ArrayList <>();
 
+    /** 实验室管理员id */
+    @ApiModelProperty(value = "实验室管理员id")
+    private Long adminId;
+
+    /** 实验室数量 */
+    @ApiModelProperty(value = "实验室数量")
+    private Integer subNum;
 }

+ 4 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/LabExitLineEvacuationVo.java

@@ -38,4 +38,8 @@ public class LabExitLineEvacuationVo {
     /** 坏点集合 */
     @ApiModelProperty(value = "坏点集合")
     private List<String> badPointNames = new ArrayList <>();
+
+    /** 逃生点集合 */
+    @ApiModelProperty(value = "逃生点集合")
+    private List<String> doorPointNames = new ArrayList <>();
 }

+ 10 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabBuildFloorMapper.java

@@ -2,6 +2,7 @@ package com.zd.laboratory.mapper;
 
 import com.zd.laboratory.domain.LabBuildFloor;
 import com.zd.laboratory.domain.vo.LabBuildFloorLayoutVo;
+import com.zd.laboratory.domain.vo.LabBuildFloorVo;
 import com.zd.laboratory.domain.vo.LabBuildListVo;
 import com.zd.laboratory.domain.vo.LabFloorListVo;
 
@@ -72,4 +73,13 @@ public interface LabBuildFloorMapper {
      * @return 结果
      */
     public int deleteLabBuildFloorByIds(Long[] ids);
+
+
+    /**
+     * 查询登录人管理的实验室的楼栋(楼层)列表
+     *
+     * @param labBuildFloorVo 楼栋楼层
+     * @return 楼栋楼层集合
+     */
+    public List <LabBuildFloor> getBuildOrFloorList(LabBuildFloorVo labBuildFloorVo);
 }

+ 9 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabBuildFloorService.java

@@ -76,4 +76,13 @@ public interface ILabBuildFloorService {
      */
     public int updateSortNum(List<LabBuildFloor> labBuildFloorList);
 
+
+    /**
+     * 查询登录人管理的实验室的楼栋(楼层)列表
+     *
+     * @param labBuildFloorVo 楼栋楼层
+     * @return 楼栋楼层集合
+     */
+    public List <LabBuildFloor> getBuildOrFloorList(LabBuildFloorVo labBuildFloorVo);
+
 }

+ 16 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabExitLineVertexService.java

@@ -2,6 +2,7 @@ package com.zd.laboratory.service;
 
 import com.zd.laboratory.domain.LabExitLine;
 import com.zd.laboratory.domain.LabExitLineVertex;
+import com.zd.laboratory.domain.LabExitPointRelay;
 import com.zd.laboratory.domain.vo.*;
 
 import java.util.List;
@@ -51,6 +52,21 @@ public interface ILabExitLineVertexService
      */
     public Map<String,Object> executeEvacuation(LabExitLineEvacuationVo labExitLineEvacuationVo);
 
+    /**
+     * 手动执行开灯
+     *
+     * @param labExitPointRelay 灯对象
+     * @return 结果
+     */
+    public int openLight(LabExitPointRelay labExitPointRelay);
+
+    /**
+     * 手动执行关灯
+     *
+     * @param labExitPointRelay 灯对象
+     * @return 结果
+     */
+    public int closeLight(LabExitPointRelay labExitPointRelay);
 
     /**
      * 新增逃生线路主

+ 7 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabBuildFloorServiceImpl.java

@@ -3,6 +3,7 @@ package com.zd.laboratory.service.impl;
 import com.github.pagehelper.PageInfo;
 import com.zd.common.core.exception.ServiceException;
 import com.zd.common.core.utils.SaveUtil;
+import com.zd.common.core.utils.SecurityUtils;
 import com.zd.laboratory.domain.LabBuildFloor;
 import com.zd.laboratory.domain.LabBuildFloorLayout;
 import com.zd.laboratory.domain.LabExitLineVertex;
@@ -168,4 +169,10 @@ public class LabBuildFloorServiceImpl implements ILabBuildFloorService {
                 });
         return 1;
     }
+
+    @Override
+    public List <LabBuildFloor> getBuildOrFloorList(LabBuildFloorVo labBuildFloorVo) {
+        labBuildFloorVo.setAdminId(SecurityUtils.getUserId());
+        return labBuildFloorMapper.getBuildOrFloorList(labBuildFloorVo);
+    }
 }

+ 55 - 4
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabExitLineVertexServiceImpl.java

@@ -186,7 +186,7 @@ public class LabExitLineVertexServiceImpl implements ILabExitLineVertexService {
                 ArrayList <Integer[][]> oldList = flody(oldRelationalData);
                 //计算楼层各个实验室的逃生线路
                 Map <String, Object> joinPointVOS = displayPath(list, newRelationalData, labExitLineEvacuationVo, oldList, oldRelationalData);
-
+                joinPointVOS.put("doorPointNames",labExitLineEvacuationVo.getDoorPointNames());
                 return joinPointVOS;
             }
         }
@@ -194,9 +194,6 @@ public class LabExitLineVertexServiceImpl implements ILabExitLineVertexService {
         return null;
     }
 
-
-
-
     //todo 计算坏点(目前只有发生预案的实验室需要标记为坏点),需要把非坏点关联坏点点位全部改成无限大
     public void badPoints(List <LabExitLineJoinPointVO> newRelationalData, String badPointName) {
         //这里计算预案发生的实验室坏点
@@ -510,6 +507,57 @@ public class LabExitLineVertexServiceImpl implements ILabExitLineVertexService {
         logger.info("->" + linePointVOList.get(j).getPointName() + "##" + linePointVOList.get(j).getPointAttribute());
     }
 
+
+    @Override
+    public int openLight(LabExitPointRelay labExitPointRelay) {
+        List <LabExitPointRelay> labExitPointRelays = labExitPointRelayMapper.selectLabExitPointRelayList(labExitPointRelay);
+        //todo  开启继电器开关
+        Optional.ofNullable(labExitPointRelays).orElseGet(Collections::emptyList)
+                .stream()
+                .forEach(a->{
+                    try {
+                        if(a.getRelayType().intValue()==1){
+                            //这里打卡继电器的开关(老继电器)
+                            socketService.sendCommand(Symbol.order.control, a.getRelayCode(), Symbol.command.open, a.getRelayBit());
+                            Thread.sleep(timeWaitConfigUtils.getWaitTime());
+                        }else{
+                            //这里打卡继电器的开关(新继电器)
+                            socketService.sendMqttCommand(a.getRelayCode(), Symbol.command.open ,a.getRelayBit()+"");
+                            Thread.sleep(timeWaitConfigUtils.getWaitTime());
+                        }
+
+                    } catch (InterruptedException e) {
+                        e.printStackTrace();
+                    }
+                });
+        return 1;
+    }
+
+    @Override
+    public int closeLight(LabExitPointRelay labExitPointRelay) {
+        List <LabExitPointRelay> labExitPointRelays = labExitPointRelayMapper.selectLabExitPointRelayList(labExitPointRelay);
+        //todo  开启继电器开关
+        Optional.ofNullable(labExitPointRelays).orElseGet(Collections::emptyList)
+                .stream()
+                .forEach(a->{
+                    try {
+                        if(a.getRelayType().intValue()==1){
+                            //这里打卡继电器的开关(老继电器)
+                            socketService.sendCommand(Symbol.order.control, a.getRelayCode(), Symbol.command.close, a.getRelayBit());
+                            Thread.sleep(timeWaitConfigUtils.getWaitTime());
+                        }else{
+                            //这里打卡继电器的开关(新继电器)
+                            socketService.sendMqttCommand(a.getRelayCode(), Symbol.command.close ,a.getRelayBit()+"");
+                            Thread.sleep(timeWaitConfigUtils.getWaitTime());
+                        }
+
+                    } catch (InterruptedException e) {
+                        e.printStackTrace();
+                    }
+                });
+        return 1;
+    }
+
     /**
      * 新增逃生线路主
      *
@@ -647,6 +695,9 @@ public class LabExitLineVertexServiceImpl implements ILabExitLineVertexService {
                 .stream()
                 .filter(b->a.getSubId().longValue()==b.getId())
                 .forEach(b->{
+                    if(b.getAdminId().longValue()==SecurityUtils.getUserId().longValue()){
+                        a.setLoginAdmin(true);
+                    }
                     a.setSubName(b.getName());
                 }));
         //实验室下的在线人员

+ 27 - 0
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabBuildFloorMapper.xml

@@ -66,6 +66,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectLabBuildFloorVo"/>
         where id = #{id}
     </select>
+    <select id="getBuildOrFloorList" resultType="com.zd.laboratory.domain.vo.LabBuildFloorVo" parameterType="com.zd.laboratory.domain.vo.LabBuildFloorVo">
+        select distinct t.id,t.`name`,t.`type`, t.img_url, t.parent_id, t.sort_no, t.user_id, t.create_by, t.create_time,
+        t.update_by, t.update_time, t.remark
+        <if test="type == 2 ">
+        , COUNT(s.id) subNum
+        </if>
+        <if test="type == 3 ">
+        , COUNT(s.id) subNum
+        </if>
+         from lab_build_floor as t
+        <if test="type == 2 ">
+          left join lab_build_floor f on t.id = f.parent_id
+          left join lab_build_floor_layout l on f.id = l.floor_id
+          left join lab_subject s on l.sub_id = s.id
+        </if>
+        <if test="type == 3 ">
+            left join lab_build_floor_layout l on t.id = l.floor_id
+            left join lab_subject s on l.sub_id = s.id
+        </if>
+        <where>
+            (s.admin_id = #{adminId} or find_in_set(#{adminId}, s.safe_user_id))
+            <if test="id != null "> and t.id = #{id}</if>
+            <if test="parentId != null "> and t.parent_id = #{parentId}</if>
+            <if test="type != null "> and t.`type` = #{type}</if>
+        </where>
+        GROUP BY t.id
+    </select>
 
 
     <insert id="insertLabBuildFloor" parameterType="com.zd.laboratory.domain.LabBuildFloor" useGeneratedKeys="true" keyProperty="id">