Przeglądaj źródła

新预案提交

hanzhiwei 3 lat temu
rodzic
commit
bb238b56b4
70 zmienionych plików z 3720 dodań i 1513 usunięć
  1. 6 0
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/forward/serivce/SendSginAccessLogService.java
  2. 3 2
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/rfid/enums/ManufacturerTypeEnum.java
  3. 10 0
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/rfid/sdk/RfidConfig.java
  4. 532 0
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/rfid/sdk/RfidServerImpl.java
  5. 6 0
      zd-modules/zd-modules-laboratory/pom.xml
  6. 2 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/ZdLaboratoryApplication.java
  7. 29 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/config/MyBatisPlusConfig.java
  8. 0 67
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabRiskPlanAbnormalDescController.java
  9. 3 32
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabRiskPlanAbnormalGroupController.java
  10. 110 39
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabRiskPlanController.java
  11. 66 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabRiskPlanLevelController.java
  12. 9 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabSensorController.java
  13. 59 21
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/LabRiskPlan.java
  14. 0 136
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/LabRiskPlanAbnormalDesc.java
  15. 0 28
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/LabRiskPlanAbnormalGroup.java
  16. 19 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/LabRiskPlanHardwareRelation.java
  17. 193 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/LabRiskPlanLevel.java
  18. 35 1
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/LabRiskPlanSensorRelation.java
  19. 3 3
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/LabRiskPlanjoinsub.java
  20. 99 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/LabSensorHazardRelation.java
  21. 0 1
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/dto/LabRiskPlanDTO.java
  22. 21 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/dto/LabRiskPlanInfoDTO.java
  23. 4 4
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/LabRiskPlanAbnormalGroupVO.java
  24. 46 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/LabRiskPlanSubVo.java
  25. 21 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/LabRiskPlanSubVoInfo.java
  26. 58 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/LabSubjectVO.java
  27. 18 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/RiskPlanSubjectRelationVo.java
  28. 46 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/RiskPlanVo.java
  29. 34 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/TriggerRiskPlanInfo.java
  30. 4 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabBuildFloorLayoutMapper.java
  31. 0 53
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabRiskPlanAbnormalDescMapper.java
  32. 9 22
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabRiskPlanAbnormalGroupMapper.java
  33. 8 3
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabRiskPlanHardwareRelationMapper.java
  34. 21 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabRiskPlanLevelMapper.java
  35. 21 2
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabRiskPlanMapper.java
  36. 15 3
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabRiskPlanSensorRelationMapper.java
  37. 34 4
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabRiskPlanjoinsubMapper.java
  38. 24 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabSensorHazardRelationMapper.java
  39. 6 2
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabSensorMapper.java
  40. 2 2
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabMessageContentService.java
  41. 0 71
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabRiskPlanAbnormalDescService.java
  42. 3 32
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabRiskPlanAbnormalGroupService.java
  43. 18 3
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabRiskPlanHardwareRelationService.java
  44. 18 3
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabRiskPlanSensorRelationService.java
  45. 35 4
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabRiskPlanService.java
  46. 15 2
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabSensorService.java
  47. 2 2
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabWarnPushMessageService.java
  48. 59 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/LabRiskPlanLevelService.java
  49. 27 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/LabSensorHazardRelationService.java
  50. 14 13
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabMessageContentServiceImpl.java
  51. 0 95
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabRiskPlanAbnormalDescServiceImpl.java
  52. 25 62
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabRiskPlanAbnormalGroupServiceImpl.java
  53. 17 1
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabRiskPlanHardwareRelationServiceImpl.java
  54. 158 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabRiskPlanLevelServiceImpl.java
  55. 17 1
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabRiskPlanSensorRelationServiceImpl.java
  56. 803 522
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabRiskPlanServiceImpl.java
  57. 33 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabSensorHazardRelationServiceImpl.java
  58. 10 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabSensorServiceImpl.java
  59. 5 5
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabWarnPushMessageServiceImpl.java
  60. 4 0
      zd-modules/zd-modules-laboratory/src/main/resources/bootstrap.yml
  61. 4 0
      zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabBuildFloorLayoutMapper.xml
  62. 0 26
      zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabRiskPlanAbnormalDescMapper.xml
  63. 9 1
      zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabRiskPlanHardwareRelationMapper.xml
  64. 45 0
      zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabRiskPlanLevelMapper.xml
  65. 393 127
      zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabRiskPlanMapper.xml
  66. 134 50
      zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabRiskPlanSensorRelationMapper.xml
  67. 212 68
      zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabRiskPlanjoinsubMapper.xml
  68. 70 0
      zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabSensorHazardRelationMapper.xml
  69. 10 0
      zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabSensorMapper.xml
  70. 4 0
      zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabSubjectMapper.xml

+ 6 - 0
zd-modules/zd-algorithm/src/main/java/com/zd/alg/forward/serivce/SendSginAccessLogService.java

@@ -1,5 +1,6 @@
 package com.zd.alg.forward.serivce;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.zd.alg.forward.config.AlgorithmYml;
 import com.zd.alg.forward.domain.VideoRequestData;
@@ -8,6 +9,7 @@ import com.zd.algorithm.api.speaker.entity.PlayVo;
 import com.zd.algorithm.api.speaker.feign.RemoteSpeakService;
 import com.zd.common.core.exception.PreAuthorizeException;
 import com.zd.common.core.utils.StringUtils;
+import com.zd.model.constant.CacheDevice;
 import com.zd.model.constant.HttpStatus;
 import com.zd.model.constant.SecurityConstants;
 import com.zd.model.domain.AjaxResult;
@@ -203,6 +205,10 @@ public class SendSginAccessLogService {
         params.put("hardwareNum", properties.getHardwareNum());
         params.put("subId", properties.getLabId());
         params.put("val", 1);
+        // todo 发送火焰预警时,在缓存中存储redis数据,供小程序端展示使用  是否需要在redis中表明是哪个项目 方便后面查询
+        String jsonString = JSON.toJSONString(params);
+        String key = CacheDevice.FIRE_CAMERA_KEY.getRedisKey()+":"+properties.getLabId();
+        redisTemplate.opsForValue().set(key, jsonString, CacheDevice.FIRE_CAMERA_KEY.getRedisTime(), TimeUnit.HOURS);
         return getParams(requestMap, maps, alarmConfig, params);
     }
 

+ 3 - 2
zd-modules/zd-algorithm/src/main/java/com/zd/alg/rfid/enums/ManufacturerTypeEnum.java

@@ -1,7 +1,7 @@
 package com.zd.alg.rfid.enums;
 
-import com.zd.alg.rfid.sdk.DeJuRFIDServerImpl;
 import com.zd.alg.rfid.sdk.RfidClientImpl;
+import com.zd.alg.rfid.sdk.RfidServerImpl;
 import com.zd.alg.rfid.service.IService;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
@@ -18,7 +18,8 @@ public enum ManufacturerTypeEnum {
      * 枚举常量
      */
 //    WU_WEI(1,"无源", WuYuanRFIDServiceImpl.class),
-    DE_JU(2,"惠州德聚服务端", DeJuRFIDServerImpl.class),
+//    DE_JU(2,"惠州德聚服务端", DeJuRFIDServerImpl.class),
+    DE_JU(2,"惠州德聚服务端", RfidServerImpl.class),
 //    DE_JU2(3,"惠州德聚客户端", DeJuRFIDClientImpl.class);
     DE_JU2(3,"惠州德聚客户端", RfidClientImpl.class);
 

+ 10 - 0
zd-modules/zd-algorithm/src/main/java/com/zd/alg/rfid/sdk/RfidConfig.java

@@ -0,0 +1,10 @@
+package com.zd.alg.rfid.sdk;
+
+/**
+ * @Description RFID配置
+ * @Author hzw
+ * @Date 2022/11/23 22:00
+ * @Version 2.0
+ */
+public class RfidConfig {
+}

+ 532 - 0
zd-modules/zd-algorithm/src/main/java/com/zd/alg/rfid/sdk/RfidServerImpl.java

@@ -0,0 +1,532 @@
+package com.zd.alg.rfid.sdk;
+
+import com.gg.reader.api.dal.*;
+import com.gg.reader.api.protocol.gx.*;
+import com.zd.alg.rfid.service.HardwareRfidService;
+import com.zd.alg.rfid.service.ISendService;
+import com.zd.alg.rfid.service.IService;
+import com.zd.algorithm.api.rfid.domain.entity.HardwareRfid;
+import com.zd.common.core.exception.ServiceException;
+import com.zd.common.core.utils.SpringUtils;
+import com.zd.model.entity.HardwareRfidDto;
+import com.zd.model.entity.InventoryTag;
+import com.zd.model.enums.DeviceStatusEnum;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @Description rfid服务端实现类
+ * @Author hzw
+ * @Date 2022/11/23 21:37
+ * @Version 2.0
+ */
+@Service
+@Slf4j
+public class RfidServerImpl implements IService {
+
+    private static final ISendService sendService = SpringUtils.getBean("sendService");
+    private final Map<String, GClient> clientMap = new ConcurrentHashMap<>();
+    private static final ScheduledExecutorService scheduledExecutorService = SpringUtils.getBean("scheduledExecutorService");
+    @Resource
+    private RedisTemplate<String, HardwareRfid> redisTemplate;
+
+    private static final Integer TIME_OUT = 2000;
+
+    @Autowired
+    private HardwareRfidService hardwareRfidService;
+
+    @Override
+    public void start(HardwareRfid hardwareRfid) {
+        open(hardwareRfid);
+    }
+
+    private void open(HardwareRfid hardwareRfid) {
+        GClient client;
+        String ipAddress = getIp(hardwareRfid);
+        if (clientMap.containsKey(ipAddress)) {
+            client = clientMap.get(ipAddress);
+        } else {
+            client = new GClient();
+            clientMap.put(ipAddress, client);
+        }
+        String ipPort = hardwareRfid.getIpAddress();
+        int port = 8160;
+        if (ipPort.split(":").length == 1) {
+            ipAddress += ":" + port;
+        }
+        if (client.openTcp(ipAddress, TIME_OUT)) {
+            //存储客户端
+            clientMap.put(ipAddress, client);
+            //开启心跳检测Tcp连接状态
+            client.setSendHeartBeat(true);
+            client.setPrint(true);
+            //订阅Tcp断连上报
+            subscribeTcpHandler(client, hardwareRfid);
+            //设置rfid初始化参数
+            setConfig(client, hardwareRfid);
+            //订阅报告启动事件
+            subscribeReportedStartEvents(client, hardwareRfid);
+            //订阅报告结束事件
+            subscribeReportedOverEvents(client, hardwareRfid);
+            //修改设备状态
+            changStatus(hardwareRfid, DeviceStatusEnum.ON_LINE.getCode());
+            log.info("【RFID门禁机】监听成功!{}", client.getName());
+
+        } else {
+            throw new ServiceException("Connect failure.");
+        }
+    }
+
+    /**
+     * 订阅TCP断开连接上报
+     */
+    private void subscribeTcpHandler(GClient client, HardwareRfid hardwareRfid) {
+        client.onDisconnected = new HandlerTcpDisconnected() {
+            @Override
+            public void log(String ipPort) {
+                log.warn("【RFID门禁机】连接已断开:{}", ipPort);
+                changStatus(hardwareRfid, DeviceStatusEnum.OFF_LINE.getCode());
+                //释放当前连接资源
+                client.close();
+                //删除客户端map数据
+                String[] split = ipPort.split(":");
+                clientMap.remove(split[0]);
+            }
+        };
+    }
+
+    private void changStatus(HardwareRfid hardwareRfid, Integer code) {
+        hardwareRfid.setDeviceStatus(code);
+        hardwareRfidService.updateHardwareRfid(hardwareRfid);
+    }
+
+    private void setConfig(GClient client, HardwareRfid hardwareRfid) {
+        try {
+            // 读写器停止读写卡
+            if (stopMsg(client)) {
+                //设置GPI
+                if (!setGpi(client)) {
+                    return;
+                }
+                //设置session
+                if (!setSession(client)) {
+                    return;
+                }
+                // 天线功率配置(将4个天线功率都设置为30dBm)
+                if (!setPower(client, hardwareRfid)) {
+                    return;
+                }
+                //天线读卡, 读取EPC数据区以及TID数据区
+                setInventory(client, hardwareRfid);
+                //读写器传输方向
+                //directionMap.put("direction",1);
+            }
+        } catch (Exception e) {
+            changStatus(hardwareRfid, DeviceStatusEnum.EXCEPTION.getCode());
+            log.error("设置门禁机异常,请联系管理员!");
+        }
+    }
+
+
+    public boolean setGpi(GClient client) {
+        MsgAppGetGpiState gpiState = new MsgAppGetGpiState();
+        client.sendSynMsg(gpiState);
+        HashMap<Integer, Integer> hashMap = gpiState.getHpGpiState();
+        boolean change = true;
+        for (Map.Entry<Integer, Integer> entry : hashMap.entrySet()) {
+            Integer k = entry.getKey();
+            MsgAppGetGpiTrigger getGpiTrigger = new MsgAppGetGpiTrigger();
+            getGpiTrigger.setGpiPort(k - 1);
+            client.sendSynMsg(getGpiTrigger);
+            if (getGpiTrigger.getRtCode() == 0) {
+                int triggerOver = getGpiTrigger.getTriggerOver();
+                int triggerStart = getGpiTrigger.getTriggerStart();
+                if (triggerStart != 0 || triggerOver != 0) {
+                    MsgAppSetGpiTrigger gpiTrigger = new MsgAppSetGpiTrigger();
+                    gpiTrigger.setGpiPort(getGpiTrigger.getGpiPort());
+                    gpiTrigger.setTriggerOver(0);
+                    gpiTrigger.setTriggerStart(0);
+                    client.sendSynMsg(gpiTrigger);
+                    if (0 != gpiTrigger.getRtCode()) {
+                        log.error("GPI epc error.");
+                        change = false;
+                    }
+                }
+            }
+        }
+        log.info("【RFID门禁机】GPI配置成功!");
+        return change;
+    }
+
+    public boolean setSession(GClient client) {
+        MsgBaseGetBaseband msgBaseGetBaseband = new MsgBaseGetBaseband();
+        MsgBaseSetBaseband msgBaseSetBaseband = new MsgBaseSetBaseband();
+        client.sendSynMsg(msgBaseGetBaseband);
+        if (0 == msgBaseGetBaseband.getRtCode()) {
+            int session = msgBaseGetBaseband.getSession();
+            if (session == 0) {
+                log.info("【RFID门禁机】Session已配置成功!");
+                return true;
+            } else {
+                msgBaseSetBaseband.setSession(0);
+                client.sendSynMsg(msgBaseSetBaseband);
+                if (0 == msgBaseSetBaseband.getRtCode()) {
+                    log.info("【RFID门禁机】Session配置成功!");
+                    return true;
+                }
+            }
+        }
+        log.error("【RFID门禁机】Session配置失败!");
+        return false;
+    }
+
+    public boolean setPower(GClient client, HardwareRfid hardwareRfid) {
+        MsgBaseGetPower msgBaseGetPower = new MsgBaseGetPower();
+        client.sendSynMsg(msgBaseGetPower);
+        if (0 == msgBaseGetPower.getRtCode()) {
+            return sendPower(client, hardwareRfid, msgBaseGetPower);
+        } else {
+            log.error("【RFID门禁机】获取天线功率失败!{}", msgBaseGetPower.getRtMsg());
+            return false;
+        }
+    }
+
+    public boolean setInventory(GClient client, HardwareRfid hardwareRfid) {
+        //几路天线读卡和通道数保持一致。
+        if (hardwareRfid.getChannels() == null) {
+            log.error("【RFID门禁机】通道配置为空!");
+            return false;
+        }
+        // 4个天线读卡, 读取 EPC 数据区以及 TID 数据区 默认只读 EPC
+        MsgBaseInventoryEpc msgBaseInventoryEpc = new MsgBaseInventoryEpc();
+        switch (hardwareRfid.getChannels()) {
+            case 4:
+                msgBaseInventoryEpc.setAntennaEnable(EnumG.AntennaNo_1 | EnumG.AntennaNo_2 | EnumG.AntennaNo_3 | EnumG.AntennaNo_4);
+                break;
+            case 8:
+                msgBaseInventoryEpc.setAntennaEnable(EnumG.AntennaNo_1 | EnumG.AntennaNo_2 | EnumG.AntennaNo_3 | EnumG.AntennaNo_4 | EnumG.AntennaNo_5 | EnumG.AntennaNo_6 | EnumG.AntennaNo_7 | EnumG.AntennaNo_8);
+                break;
+            case 16:
+                msgBaseInventoryEpc.setAntennaEnable(EnumG.AntennaNo_1 | EnumG.AntennaNo_2 | EnumG.AntennaNo_3 | EnumG.AntennaNo_4 | EnumG.AntennaNo_5 | EnumG.AntennaNo_6 | EnumG.AntennaNo_7 | EnumG.AntennaNo_8 | EnumG.AntennaNo_9 | EnumG.AntennaNo_10 | EnumG.AntennaNo_11 | EnumG.AntennaNo_12 | EnumG.AntennaNo_13 | EnumG.AntennaNo_14 | EnumG.AntennaNo_15 | EnumG.AntennaNo_16);
+                break;
+            case 1:
+            default:
+                msgBaseInventoryEpc.setAntennaEnable(EnumG.AntennaNo_1);
+        }
+        msgBaseInventoryEpc.setInventoryMode(EnumG.InventoryMode_Inventory);
+        client.sendSynMsg(msgBaseInventoryEpc);
+        if (0 == msgBaseInventoryEpc.getRtCode()) {
+            log.info("【RFID门禁机】Inventory epc配置成功!");
+            return true;
+        } else {
+            log.error("【RFID门禁机】Inventory epc配置失败!");
+            return false;
+        }
+    }
+
+
+    private boolean sendPower(GClient client, HardwareRfid hardwareRfid, MsgBaseGetPower msgBaseGetPower) {
+        //根据硬件配置参数配置设备功率
+        if (!hardwareRfid.getUniformPower().isEmpty() && hardwareRfid.getChannels() != null) {
+            Hashtable<Integer, Integer> dicPower = msgBaseGetPower.getDicPower();
+            Integer channels = hardwareRfid.getChannels();
+            String[] uniformPowers = hardwareRfid.getUniformPower().split(",");
+            for (int i = 1; i <= channels; i++) {
+                Integer power = dicPower.get(i);
+                String tempUniformPower = uniformPowers[i - 1];
+                String[] tempUniformPowers = tempUniformPower.split(":");
+                String temp = tempUniformPowers[0];
+                if (power == null || !Objects.equals(power, Integer.valueOf(temp))) {
+                    dicPower.put(i, Integer.valueOf(temp));
+                }
+            }
+            MsgBaseSetPower msgBaseSetPower = new MsgBaseSetPower();
+            msgBaseSetPower.setDicPower(dicPower);
+            client.sendSynMsg(msgBaseSetPower);
+            if (0 == msgBaseSetPower.getRtCode()) {
+                log.info("【RFID门禁机】设置天线功率成功!");
+                return true;
+            } else {
+                log.error("【RFID门禁机】设置天线功率失败!{}", msgBaseSetPower.getRtMsg());
+                return false;
+            }
+        } else {
+            log.error("设备输出频率或通道参数配置为空,UniformPower={},Channels={}", hardwareRfid.getUniformPower(), hardwareRfid.getChannels());
+            return false;
+        }
+    }
+
+    private boolean changeGpo(String ipAddress, int state, GClient client, int delayTime) {
+        log.info("进入控制报警方法!是否开启={}", state);
+        MsgAppSetGpo msgAppSetGpo = new MsgAppSetGpo();
+        msgAppSetGpo.setGpo1(state);
+        msgAppSetGpo.setGpo2(state);
+        msgAppSetGpo.setGpo3(state);
+        msgAppSetGpo.setGpo4(state);
+        client.sendSynMsg(msgAppSetGpo);//发送响铃之后,进入下方if,开启定时线程
+        String status = state == 1 ? "开启" : "关闭";
+        if (0 == msgAppSetGpo.getRtCode()) {
+            log.info("【RFID门禁机】灯带报警{}成功!", status);
+            if (state == 1) {
+                stopGpo(ipAddress, client, delayTime);
+            }
+            return true;
+        }
+        log.info("【RFID门禁机】灯带报警{}失败!", status);
+        return false;
+
+    }
+
+    public static MsgBaseInventoryEpc setInventory(HardwareRfid hardwareRfid, GClient client) {
+        MsgBaseInventoryEpc msgBaseInventoryEpc = new MsgBaseInventoryEpc();
+        switch (hardwareRfid.getChannels()) {
+            case 4:
+                msgBaseInventoryEpc.setAntennaEnable(EnumG.AntennaNo_1 | EnumG.AntennaNo_2 | EnumG.AntennaNo_3 | EnumG.AntennaNo_4);
+                break;
+            case 8:
+                msgBaseInventoryEpc.setAntennaEnable(EnumG.AntennaNo_1 | EnumG.AntennaNo_2 | EnumG.AntennaNo_3 | EnumG.AntennaNo_4 | EnumG.AntennaNo_5 | EnumG.AntennaNo_6 | EnumG.AntennaNo_7 | EnumG.AntennaNo_8);
+                break;
+            case 16:
+                msgBaseInventoryEpc.setAntennaEnable(EnumG.AntennaNo_1 | EnumG.AntennaNo_2 | EnumG.AntennaNo_3 | EnumG.AntennaNo_4 | EnumG.AntennaNo_5 | EnumG.AntennaNo_6 | EnumG.AntennaNo_7 | EnumG.AntennaNo_8 | EnumG.AntennaNo_9 | EnumG.AntennaNo_10 | EnumG.AntennaNo_11 | EnumG.AntennaNo_12 | EnumG.AntennaNo_13 | EnumG.AntennaNo_14 | EnumG.AntennaNo_15 | EnumG.AntennaNo_16);
+                break;
+            case 1:
+            default:
+                msgBaseInventoryEpc.setAntennaEnable(EnumG.AntennaNo_1);
+        }
+        msgBaseInventoryEpc.setInventoryMode(EnumG.InventoryMode_Inventory);
+
+        client.sendSynMsg(msgBaseInventoryEpc);
+        if (0 == msgBaseInventoryEpc.getRtCode()) {
+            log.info("Inventory epc success.");
+        }
+        return msgBaseInventoryEpc;
+    }
+
+    public static MsgBaseSetPower setPower(HardwareRfid hardwareRfid, GClient client) {
+        String uniformPower = hardwareRfid.getUniformPower();
+        MsgBaseGetPower msgBaseGetPower = new MsgBaseGetPower();
+        client.sendSynMsg(msgBaseGetPower);
+        MsgBaseSetPower msgBaseSetPower = new MsgBaseSetPower();
+        if (0 == msgBaseGetPower.getRtCode()) {
+            sendPower(hardwareRfid, client, uniformPower, msgBaseGetPower, msgBaseSetPower);
+        } else {
+            log.info("==============获取输出功率失败==============");
+        }
+        return msgBaseSetPower;
+    }
+
+    private static void sendPower(HardwareRfid hardwareRfid, GClient client, String uniformPower, MsgBaseGetPower msgBaseGetPower, MsgBaseSetPower msgBaseSetPower) {
+        if (StringUtils.hasLength(uniformPower)) {
+            editAndSendPower(hardwareRfid, client, uniformPower, msgBaseSetPower, msgBaseGetPower);
+        } else {
+            msgBaseSetPower.setRtCode((byte) 0);
+        }
+    }
+
+    private static void editAndSendPower(HardwareRfid hardwareRfid, GClient client, String uniformPower, MsgBaseSetPower msgBaseSetPower, MsgBaseGetPower msgBaseGetPower) {
+        Hashtable<Integer, Integer> dicPower = msgBaseGetPower.getDicPower();
+        Integer channels = hardwareRfid.getChannels();
+        String[] uniformPowers = uniformPower.split(",");
+        for (int i = 1; i <= channels; i++) {
+            Integer power = dicPower.get(i);
+            String tempUniformPower = uniformPowers[i - 1];
+            String[] tempUniformPowers = tempUniformPower.split(":");
+            String temp = tempUniformPowers[0];
+            if (power == null || !Objects.equals(power, Integer.valueOf(temp))) {
+                dicPower.put(i, Integer.valueOf(temp));
+            }
+        }
+        msgBaseSetPower.setDicPower(dicPower);
+        client.sendSynMsg(msgBaseSetPower);
+        if (0 == msgBaseSetPower.getRtCode()) {
+            log.info("Power epc success.");
+        } else {
+            log.info("==============设置输出功率失败==============");
+        }
+    }
+
+    public static MsgBaseSetBaseband setSession(HardwareRfid hardwareRfid, GClient client) {
+        MsgBaseGetBaseband msgBaseGetBaseband = new MsgBaseGetBaseband();
+        MsgBaseSetBaseband msgBaseSetBaseband = new MsgBaseSetBaseband();
+        client.sendSynMsg(msgBaseGetBaseband);
+        if (0 == msgBaseGetBaseband.getRtCode()) {
+            int session = msgBaseGetBaseband.getSession();
+            log.info("Session index is:==============》{}", session);
+            if (session != hardwareRfid.getSessionIndex()) {
+                msgBaseSetBaseband.setSession(hardwareRfid.getSessionIndex());
+                client.sendSynMsg(msgBaseSetBaseband);
+                if (0 != msgBaseSetBaseband.getRtCode()) {
+                    log.info("Session epc error.");
+                } else {
+                    log.info("Session epc success.");
+                }
+            } else {
+                msgBaseSetBaseband.setRtCode((byte) 0);
+            }
+        }
+        return msgBaseSetBaseband;
+    }
+
+
+//    @Override
+//    public void disconnect(HardwareRfid hardwareRfid) {
+//        close(hardwareRfid);
+//    }
+
+    public void close(HardwareRfid hardwareRfid) {
+        String ipAddress = hardwareRfid.getIpAddress();
+        if (clientMap.containsKey(ipAddress)) {
+            GClient client = clientMap.get(ipAddress);
+            changeGpo(ipAddress, 0, client, 0);
+            stopMsg(client);
+            log.error("client.close()");
+            client.close();
+            clientMap.remove(ipAddress);
+        }
+    }
+
+    /**
+     * 停止读写卡
+     */
+    public boolean stopMsg(GClient client) {
+        // 停止指令,空闲态
+        MsgBaseStop msgBaseStop = new MsgBaseStop();
+        client.sendSynMsg(msgBaseStop);
+        if (0x00 == msgBaseStop.getRtCode()) {
+            log.info("【RFID门禁机】停止读写成功!");
+            return true;
+        } else {
+            log.error("【RFID门禁机】停止读写失败!{}", msgBaseStop.getRtMsg());
+            return false;
+        }
+    }
+
+    public void stopGpo(String ipAddress, GClient client, int delayTime) {
+        scheduledExecutorService.schedule(new TimerTask() {
+            @Override
+            public void run() {
+                changeGpo(ipAddress, 0, client, 0);
+            }
+        }, delayTime, TimeUnit.SECONDS);
+    }
+
+    private void subscribeReportedStartEvents(GClient client, HardwareRfid hardwareRfid) {
+        // 订阅标签上报事件
+        client.onTagEpcLog = new HandlerTagEpcLog() {
+            @Override
+            public void log(String readName, LogBaseEpcInfo logBaseEpcInfo) {
+                // 回调内部如有阻塞,会影响 API 正常使用
+                // 标签回调数量较多,请将标签数据先缓存起来再作业务处理
+                if (null != logBaseEpcInfo && 0 == logBaseEpcInfo.getResult()) {
+                    log.info("接收到RFID读写器消息:{}", logBaseEpcInfo);
+                    // redis是否存在此标签
+                    int antId = logBaseEpcInfo.getAntId();
+                    String epc = logBaseEpcInfo.getEpc();
+                    if (Boolean.FALSE.equals(redisTemplate.hasKey(logBaseEpcInfo.getEpc() + antId))) {
+                        //不存在缓存,设置间隔30s调用
+                        redisTemplate.opsForValue().set(logBaseEpcInfo.getEpc() + antId, hardwareRfid, 30, TimeUnit.SECONDS);
+                        scheduledExecutorService.execute(() -> {
+                            InventoryTag tag = new InventoryTag();
+                            BeanUtils.copyProperties(logBaseEpcInfo, tag);
+                            HardwareRfidDto hardwareRfidDto = new HardwareRfidDto();
+                            BeanUtils.copyProperties(hardwareRfid, hardwareRfidDto);
+                            tag.setHardwareRfidDto(hardwareRfidDto);
+                            sendService.send(tag);
+                        });
+                    } else {
+                        //标签存在缓存,间隔30s调用
+                        log.info("标签操作频繁,请间隔30s调用!");
+                    }
+                }
+            }
+        };
+    }
+
+    private void subscribeReportedOverEvents(GClient client, HardwareRfid hardwareRfid) {
+        client.onTagEpcOver = new HandlerTagEpcOver() {
+            @Override
+            public void log(String s, LogBaseEpcOver logBaseEpcOver) {
+                log.info("【RFID门禁机】已离线!");
+                hardwareRfid.setDeviceStatus(DeviceStatusEnum.OFF_LINE.getCode());
+                hardwareRfidService.updateHardwareRfid(hardwareRfid);
+            }
+        };
+    }
+
+
+    @Override
+    public void disconnect(HardwareRfid hardwareRfid) {
+        String ip = getIp(hardwareRfid);
+        if (clientMap.containsKey(ip)) {
+            GClient client = clientMap.get(ip);
+            //关闭报警
+            changeGpo(ip, 0, client, 0);
+            //停止读写卡
+            stopMsg(client);
+            //客户端资源释放
+            client.close();
+            //客户端清除
+            clientMap.remove(ip);
+            log.info("【RFID门禁机】关闭成功!");
+        }
+
+    }
+
+    @Override
+    public boolean alarm(HardwareRfid hardwareRfid) {
+        log.info("收到调用报警!");
+        //灯带设置
+        String ipAddress = getIp(hardwareRfid);
+        if (clientMap.containsKey(ipAddress)) {
+            GClient client = clientMap.get(ipAddress);
+            synchronized (this) {
+                //设置开始报警、报警时长
+                return changeGpo(ipAddress, 1, client, 1);
+            }
+        }
+        return false;
+    }
+
+    /**
+     * 去掉端口号,只获取ip
+     */
+    private static String getIp(HardwareRfid hardwareRfid) {
+        String ipAddress;
+        if (Objects.isNull(hardwareRfid) || org.apache.commons.lang3.StringUtils.isBlank(hardwareRfid.getIpAddress())) {
+            log.error("RFID配置ip为空!");
+        }
+        String[] ipPort = hardwareRfid.getIpAddress().split(":");
+        if (ipPort.length > 1) {
+            ipAddress = ipPort[0];
+        } else {
+            ipAddress = hardwareRfid.getIpAddress();
+        }
+        return ipAddress;
+    }
+
+    /**
+     * 获取端口号 未配置端口号默认给到8160
+     */
+    private static int getPort(String ipPort) {
+        //默认给到8160
+        int port = 8160;
+        if (null == ipPort || "".equals(ipPort)) {
+            return port;
+        }
+        String[] split = ipPort.split(":");
+        if (split.length > 1) {
+            port = Integer.valueOf(split[1]);
+        }
+        return port;
+    }
+}

+ 6 - 0
zd-modules/zd-modules-laboratory/pom.xml

@@ -92,6 +92,12 @@
             <groupId>com.zd.algorithm</groupId>
             <artifactId>zd-algorithm-api</artifactId>
         </dependency>
+
+        <!-- mybatis plus -->
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+        </dependency>
     </dependencies>
 
     <build>

+ 2 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/ZdLaboratoryApplication.java

@@ -5,6 +5,7 @@ import com.zd.common.core.annotation.EnableZdFeignClients;
 import com.zd.common.core.launch.ZdStartApplication;
 import com.zd.model.constant.ApplicationConstants;
 import com.zd.model.constant.BaseConstants;
+import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.scheduling.annotation.EnableScheduling;
@@ -19,6 +20,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
 @SpringBootApplication
 @EnableScheduling
 @ComponentScan(basePackages = BaseConstants.BASE_PACKAGE)
+@MapperScan(value = {"com.zd.**.mapper"})
 public class ZdLaboratoryApplication {
     public static void main(String[] args) {
         ZdStartApplication.run(ApplicationConstants.LABORATORY_SERVICE, ZdLaboratoryApplication.class, args);

+ 29 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/config/MyBatisPlusConfig.java

@@ -0,0 +1,29 @@
+package com.zd.laboratory.config;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+@MapperScan("com.cn.springbootmybatisplus06.mapper")
+@EnableTransactionManagement//自动管理事务
+@Configuration // 配置类
+public class MyBatisPlusConfig {
+
+    /**
+     * 新版
+     */
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
+        //配置乐观锁
+        mybatisPlusInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
+        //配置分页插件
+        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
+        return mybatisPlusInterceptor;
+    }
+}

+ 0 - 67
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabRiskPlanAbnormalDescController.java

@@ -1,67 +0,0 @@
-package com.zd.laboratory.controller;
-
-import com.zd.common.core.web.controller.BaseController;
-import com.zd.laboratory.domain.LabRiskPlanAbnormalDesc;
-import com.zd.laboratory.service.ILabRiskPlanAbnormalDescService;
-import com.zd.laboratory.service.impl.LabRiskPlanAbnormalDescServiceImpl;
-import com.zd.model.domain.ResultData;
-import io.swagger.annotations.Api;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * <p>风险执行概要</p>
- *
- * @author linft
- * @version 1.0
- * @date 12/9/2022
- */
-@RestController
-@RequestMapping("/plan/desc")
-@Api(tags = {" 风险执行概要"})
-public class LabRiskPlanAbnormalDescController extends BaseController {
-
-    @Autowired
-    private ILabRiskPlanAbnormalDescService labRiskPlanAbnormalDescService;
-
-    @GetMapping("/riskPlanAbnormalDesc")
-    public ResultData getRiskPlanAbnormalDesc(Long groupId) {
-        if (groupId != null) {
-            LabRiskPlanAbnormalDesc desc = new LabRiskPlanAbnormalDesc();
-            desc.setGroupId(groupId);
-            List<LabRiskPlanAbnormalDesc> list = labRiskPlanAbnormalDescService.selectByList(desc);
-            if (list != null && list.size() > 0) {
-                LabRiskPlanAbnormalDesc result = list.get(0);
-                return ResultData.success(result);
-            }
-        }
-        return ResultData.success();
-    }
-
-    @PostMapping("/add")
-    public ResultData addRiskPlanAbnormalDesc(@RequestBody LabRiskPlanAbnormalDesc desc) {
-        if (desc != null && labRiskPlanAbnormalDescService.insert(desc) > 0) {
-            return ResultData.success();
-        }
-        return ResultData.fail();
-    }
-
-    @PostMapping("/update")
-    public ResultData updateRiskPlanAbnormalDesc(@RequestBody LabRiskPlanAbnormalDesc desc) {
-        if (desc != null && labRiskPlanAbnormalDescService.updateById(desc) > 0) {
-            return ResultData.success();
-        }
-        return ResultData.fail();
-    }
-
-    @PostMapping("/delete")
-    public ResultData deleteRiskPlanAbnormalDesc(@RequestBody LabRiskPlanAbnormalDesc desc) {
-        if (desc != null && desc.getDescId() != null && labRiskPlanAbnormalDescService.deleteById(desc.getDescId()) > 0) {
-            return ResultData.success();
-        }
-        return ResultData.fail();
-    }
-
-}

+ 3 - 32
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabRiskPlanAbnormalGroupController.java

@@ -1,23 +1,18 @@
 package com.zd.laboratory.controller;
 
-import com.zd.common.core.web.controller.BaseController;
-import com.zd.model.domain.ResultData;
 import com.zd.laboratory.domain.LabRiskPlanAbnormalGroup;
 import com.zd.laboratory.domain.vo.LabRiskPlanAbnormalGroupVO;
 import com.zd.laboratory.service.ILabRiskPlanAbnormalGroupService;
-import com.zd.model.page.TableDataInfo;
+import com.zd.model.domain.ResultData;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
 
-import static com.zd.common.core.utils.PageHelperUtil.startPage;
-
 /**
  * 风险异常组Controller
  *
@@ -27,7 +22,7 @@ import static com.zd.common.core.utils.PageHelperUtil.startPage;
 @RestController
 @RequestMapping("/plan/group")
 @Api(tags = {" 风险异常组"})
-public class LabRiskPlanAbnormalGroupController extends BaseController {
+public class LabRiskPlanAbnormalGroupController {
 
     @Autowired
     private ILabRiskPlanAbnormalGroupService labRiskPlanAbnormalGroupService;
@@ -42,31 +37,7 @@ public class LabRiskPlanAbnormalGroupController extends BaseController {
         return ResultData.success(list);
     }
 
-    @GetMapping("/riskExeRecordList")
-    @ApiOperation(value = "查询预案执行记录")
-    public TableDataInfo riskExeRecordList(LabRiskPlanAbnormalGroup group) {
-        startPage();
-        List<LabRiskPlanAbnormalGroup> list = labRiskPlanAbnormalGroupService.queryRiskExeRecordList(group);
-        return getDataTable(list);
-    }
 
-    @GetMapping("/addRiskExeRecord")
-    @ApiOperation(value = "查询预案执行记录")
-    public ResultData addRiskExeRecord(String riskPlanName, long subjectId, String subjectName, Integer riskAttribute, String riskReason, int riskLevel) {
-        boolean bool = labRiskPlanAbnormalGroupService.addRiskExeRecord(riskPlanName, subjectId, subjectName, riskAttribute, riskReason, riskLevel);
-        if (bool) {
-            return ResultData.success();
-        }
-        return ResultData.fail();
-    }
 
-    @GetMapping("/doneRiskExeRecord")
-    @ApiOperation(value = "查询预案执行记录")
-    public ResultData doneRiskExeRecord(long groupId,String handledPerson, String recordVideo) {
-        boolean bool = labRiskPlanAbnormalGroupService.doneRiskExeRecord(groupId, handledPerson, recordVideo);
-        if (bool) {
-            return ResultData.success();
-        }
-        return ResultData.fail();
-    }
+
 }

+ 110 - 39
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabRiskPlanController.java

@@ -1,6 +1,8 @@
 package com.zd.laboratory.controller;
 
 import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.zd.algorithm.api.rfid.domain.entity.HardwareRfid;
 import com.zd.common.core.annotation.Log;
 import com.zd.common.core.annotation.PreAuthorize;
 import com.zd.common.core.log.BusinessType;
@@ -10,9 +12,15 @@ import com.zd.common.core.utils.StringUtils;
 import com.zd.common.core.web.controller.BaseController;
 import com.zd.laboratory.api.entity.SensorFunctionStatus;
 import com.zd.laboratory.api.vo.SubFunction;
-import com.zd.laboratory.domain.*;
+import com.zd.laboratory.domain.LabRiskPlan;
+import com.zd.laboratory.domain.LabRiskPlanAbnormalGroup;
+import com.zd.laboratory.domain.LabRiskPlanAbnormalLog;
+import com.zd.laboratory.domain.LabRiskPlanjoinsub;
 import com.zd.laboratory.domain.dto.LabRiskPlanDTO;
+import com.zd.laboratory.domain.vo.LabRiskPlanSubVo;
 import com.zd.laboratory.domain.vo.LabSubjectVO;
+import com.zd.laboratory.domain.vo.RiskPlanVo;
+import com.zd.laboratory.mapper.LabRiskPlanjoinsubMapper;
 import com.zd.laboratory.service.ILabHardwareService;
 import com.zd.laboratory.service.ILabRiskPlanAbnormalLogService;
 import com.zd.laboratory.service.ILabRiskPlanService;
@@ -27,7 +35,10 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
-import java.util.*;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
 
 /**
  * 风险预案Controller
@@ -54,6 +65,9 @@ public class LabRiskPlanController extends BaseController {
     @Autowired
     RedisService redisService;
 
+    @Autowired
+    private LabRiskPlanjoinsubMapper LabRiskPlanjoinsubMapper;
+
     /**
      * 查询风险预案列表
      */
@@ -97,10 +111,10 @@ public class LabRiskPlanController extends BaseController {
      */
     @PreAuthorize(hasPermi = PerPrefix.LABORATORY_PLAN + PerFun.ADD)
     @Log(title = "风险预案", businessType = BusinessType.INSERT)
-    @PostMapping
+    @PostMapping("/add")
     public ResultData add(@RequestBody LabRiskPlan labRiskPlan) {
-        labRiskPlanService.insertLabRiskPlan(labRiskPlan);
-        return ResultData.success();
+        Long id = labRiskPlanService.insertLabRiskPlan(labRiskPlan);
+        return ResultData.success(id);
     }
 
     /**
@@ -108,29 +122,56 @@ public class LabRiskPlanController extends BaseController {
      */
     @PreAuthorize(hasPermi = PerPrefix.LABORATORY_PLAN + PerFun.EDIT)
     @Log(title = "风险预案", businessType = BusinessType.UPDATE)
-    @PutMapping
+    @PutMapping("/update")
     public ResultData edit(@RequestBody LabRiskPlan labRiskPlan) {
         return ResultData.success(labRiskPlanService.updateLabRiskPlan(labRiskPlan));
     }
 
     /**
-     * 获取预案关联实验室信息
+     * 删除风险预案
+     */
+    @PreAuthorize(hasPermi = PerPrefix.LABORATORY_PLAN + PerFun.REMOVE)
+    @Log(title = "风险预案", businessType = BusinessType.DELETE)
+    @DeleteMapping("delete/{ids}")
+    public ResultData remove(@PathVariable String ids) {
+        return ResultData.success(labRiskPlanService.deleteLabRiskPlanByIds(ids));
+    }
+
+    /**
+     * 查询风险预案列表2
+     */
+    @PreAuthorize(hasPermi = PerPrefix.LABORATORY_PLAN + PerFun.LIST)
+    @PostMapping("/lists")
+    public TableDataInfo lists(@RequestBody RiskPlanVo riskPlanVo) {
+        Page<HardwareRfid> pages = labRiskPlanService.queryRiskPlanList(new Page(riskPlanVo.getPageNum(), riskPlanVo.getPageSize()), riskPlanVo);
+        return getDataTable(pages.getRecords(),pages.getTotal());
+    }
+
+    /**
+     * 根据预案id查询预案详情
+     */
+    @PreAuthorize(hasPermi = PerPrefix.LABORATORY_PLAN + PerFun.QUERY)
+    @GetMapping("/getRiskPlanDetail/{id}")
+    public ResultData getRiskPlanDetail(@PathVariable Long id) {
+        return ResultData.success(labRiskPlanService.getById(id));
+    }
+
+    /**
+     * 查询预案关联实验室列表(分页)
      */
     @PostMapping(value = "/getLabRiskPlanJoinSub")
-    public ResultData getLabRiskPlanJoinSub(@RequestBody LabRiskPlan labRiskPlan) {
-        if(labRiskPlan.getAllSelect()){
-            LabSubjectVO labSubject = new LabSubjectVO();
-            List<LabSubject> list = labSubjectService.getUserRoleBySub(labSubject);
-            List <LabRiskPlanjoinsub> labRiskPlanjoinsubList = new ArrayList<>();
-            for(LabSubject subject:list){
-                LabRiskPlanjoinsub labRiskPlanjoinsub = new LabRiskPlanjoinsub();
-                labRiskPlanjoinsub.setSubjectId(subject.getId());
-                labRiskPlanjoinsubList.add(labRiskPlanjoinsub);
-            }
-            labRiskPlan.setLabRiskPlanjoinsubList(labRiskPlanjoinsubList);
-        }
-        Map<String,Object> map = labRiskPlanService.getLabRiskPlanJoinSub(labRiskPlan);
-        return ResultData.success(map);
+    public TableDataInfo getLabRiskPlanJoinSub(@RequestBody LabRiskPlanSubVo labRiskPlanSubVo) {
+        Page<LabSubjectVO> labRiskPlanJoinSubInfo = labRiskPlanService.getLabRiskPlanJoinSubInfo(labRiskPlanSubVo);
+        return getDataTable(labRiskPlanJoinSubInfo.getRecords(),labRiskPlanJoinSubInfo.getTotal());
+    }
+
+    /**
+     * 获取预案未关联实验室列表信息
+     */
+    @PostMapping(value = "/getLabRiskPlanNoJoinSub")
+    public TableDataInfo getLabRiskPlanNoJoinSub(@RequestBody LabRiskPlanSubVo labRiskPlanSubVo) {
+        Page<LabSubjectVO> labRiskPlanJoinSubInfo = labRiskPlanService.getLabRiskPlanNoJoinSub(labRiskPlanSubVo);
+        return getDataTable(labRiskPlanJoinSubInfo.getRecords(),labRiskPlanJoinSubInfo.getTotal());
     }
 
     /**
@@ -139,30 +180,38 @@ public class LabRiskPlanController extends BaseController {
     @Log(title = "预案关联实验室提交", businessType = BusinessType.INSERT)
     @PreAuthorize(hasPermi = PerPrefix.LABORATORY_PLANJOIN + PerFun.EDIT)
     @PostMapping("/riskPlanJoinSub")
-    public ResultData riskPlanJoinSub(@RequestBody LabRiskPlan labRiskPlan) {
-        if(labRiskPlan.getAllSelect()){
-            LabSubjectVO labSubject = new LabSubjectVO();
-            List<LabSubject> list = labSubjectService.getUserRoleBySub(labSubject);
-            List <LabRiskPlanjoinsub> labRiskPlanjoinsubList = new ArrayList<>();
-            for(LabSubject subject:list){
-                LabRiskPlanjoinsub labRiskPlanjoinsub = new LabRiskPlanjoinsub();
-                labRiskPlanjoinsub.setSubjectId(subject.getId());
-                labRiskPlanjoinsubList.add(labRiskPlanjoinsub);
-            }
-            labRiskPlan.setLabRiskPlanjoinsubList(labRiskPlanjoinsubList);
-        }
-        labRiskPlanService.riskPlanJoinSub(labRiskPlan);
-        return ResultData.success();
+    public ResultData riskPlanJoinSub(@RequestBody List<LabRiskPlanSubVo> labRiskPlanSubVos) {
+        return ResultData.success(labRiskPlanService.riskPlanJoinSub(labRiskPlanSubVos));
     }
 
     /**
-     * 删除风险预案
+     * 预案批量关联实验室
+     */
+    @Log(title = "预案批量关联实验室", businessType = BusinessType.INSERT)
+    @PreAuthorize(hasPermi = PerPrefix.LABORATORY_PLANJOIN + PerFun.EDIT)
+    @PostMapping("/riskPlanBatchJoinSub")
+    public ResultData riskPlanBatchJoinSub(@RequestBody LabRiskPlanSubVo labRiskPlanSubVo) {
+        return ResultData.result(labRiskPlanService.riskPlanBatchJoinSub(labRiskPlanSubVo));
+    }
+
+    /**
+     * 删除风险预案绑定的实验室
      */
     @PreAuthorize(hasPermi = PerPrefix.LABORATORY_PLAN + PerFun.REMOVE)
     @Log(title = "风险预案", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public ResultData remove(@PathVariable Long[] ids) {
-        return ResultData.success(labRiskPlanService.deleteLabRiskPlanByIds(ids));
+    @DeleteMapping("/deleteRiskPlanJoinSub")
+    public ResultData deleteRiskPlanJoinSub(@RequestBody LabRiskPlanSubVo labRiskPlanSubVo) {
+        return ResultData.success(labRiskPlanService.deleteRiskPlanJoinSub(labRiskPlanSubVo));
+    }
+
+    /**
+     * 查询当前触发预案的楼栋、楼层、实验室信息列表
+     */
+    @PreAuthorize(hasPermi = PerPrefix.LABORATORY_PLAN + PerFun.QUERY)
+    @Log(title = "查询当前触发预案的信息", businessType = BusinessType.OTHER)
+    @DeleteMapping("/selectTriggerInfo")
+    public ResultData selectTriggerInfo() {
+        return ResultData.success(labRiskPlanService.selectTriggerInfo());
     }
 
 
@@ -260,4 +309,26 @@ public class LabRiskPlanController extends BaseController {
         List<LabRiskPlanDTO> list = labRiskPlanService.selectLabRiskPlanStatisticList(labRiskPlan);
         return ResultData.success(list);
     }
+    /**
+     * 查询预案名称是否重复
+     */
+    @PreAuthorize(hasPermi = PerPrefix.LABORATORY_PLAN + PerFun.QUERY)
+    @Log(title = "查询预案名称是否重复", businessType = BusinessType.OTHER)
+    @GetMapping("/queryByName")
+    public ResultData queryByName(String name) {
+        if (labRiskPlanService.queryByName(name) == 0) {
+            return ResultData.success(1,"预案名称可用!");
+        }
+        return ResultData.success(0,"预案名称重复!");
+    }
+
+    /**
+     * 通过预案id修改风险预案名称
+     */
+    @PreAuthorize(hasPermi = PerPrefix.LABORATORY_PLAN + PerFun.EDIT)
+    @Log(title = "通过预案id修改风险预案名称", businessType = BusinessType.UPDATE)
+    @PutMapping("updateByRiskPlanId")
+    public ResultData updateByRiskPlanId(@RequestBody LabRiskPlan labRiskPlan) {
+        return ResultData.success(labRiskPlanService.updateLabRiskPlan(labRiskPlan));
+    }
 }

+ 66 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabRiskPlanLevelController.java

@@ -0,0 +1,66 @@
+package com.zd.laboratory.controller;
+
+import com.zd.common.core.annotation.PreAuthorize;
+import com.zd.common.core.web.controller.BaseController;
+import com.zd.laboratory.domain.LabRiskPlanLevel;
+import com.zd.laboratory.service.LabRiskPlanLevelService;
+import com.zd.model.domain.ResultData;
+import com.zd.model.domain.per.PerFun;
+import com.zd.model.domain.per.PerPrefix;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @Description 风险预案级别控制类
+ * @Author hzw
+ * @Date 2022/11/30 9:29
+ * @Version 2.0
+ */
+@RestController
+@RequestMapping("/planLevel")
+@Api(tags = {"风险预案级别"})
+public class LabRiskPlanLevelController extends BaseController {
+
+    @Autowired
+    private LabRiskPlanLevelService LabRiskPlanLevelService;
+
+    /**
+     * 新增预案级别信息信息
+     */
+    @PreAuthorize(hasPermi = PerPrefix.LABORATORY_PLAN + PerFun.ADD)
+    @PostMapping("/add")
+    public ResultData insert(@RequestBody LabRiskPlanLevel labRiskPlanLevel) {
+        return LabRiskPlanLevelService.insertLabRiskPlanLevel(labRiskPlanLevel);
+    }
+
+    /**
+     * 修改预案下预案级别信息
+     */
+    @PreAuthorize(hasPermi = PerPrefix.LABORATORY_PLAN + PerFun.EDIT)
+    @PutMapping("/update")
+    public ResultData updateById(@RequestBody LabRiskPlanLevel labRiskPlanLevel) {
+        return LabRiskPlanLevelService.updateLabRiskPlanLevel(labRiskPlanLevel);
+    }
+
+    /**
+     * 删除预案下预案级别信息
+     */
+    @PreAuthorize(hasPermi = PerPrefix.LABORATORY_PLAN + PerFun.REMOVE)
+    @DeleteMapping("/delete")
+    public ResultData delete(@RequestBody LabRiskPlanLevel labRiskPlanLevel) {
+        return ResultData.result(LabRiskPlanLevelService.deleteById(labRiskPlanLevel));
+    }
+
+    /**
+     * 根据预案id查询分级列表
+     */
+    @PreAuthorize(hasPermi = PerPrefix.LABORATORY_PLAN + PerFun.QUERY)
+    @GetMapping("/selectRiskPlanLeveList/{riskPlanId}")
+    public ResultData selectRiskPlanLeveList(@PathVariable Long riskPlanId) {
+        List<LabRiskPlanLevel> labRiskPlanLevelList = LabRiskPlanLevelService.queryRiskPlanLevelList(riskPlanId);
+        return ResultData.success(labRiskPlanLevelList);
+    }
+}

+ 9 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabSensorController.java

@@ -149,4 +149,13 @@ public class LabSensorController extends BaseController {
         return ResultData.success(sesorList);
     }
 
+    /**
+     * 通过实验室id查询传感器列表
+     */
+    @GetMapping("/getSensorListBySubId/{id}")
+    public ResultData getSensorListBySubId(@PathVariable("id") Long id) {
+        List<LabSensor> list = labSensorService.getSensorListBySubId(id);
+        return ResultData.success(list);
+    }
+
 }

+ 59 - 21
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/LabRiskPlan.java

@@ -1,11 +1,10 @@
 package com.zd.laboratory.domain;
 
+import com.zd.laboratory.domain.vo.RiskPlanSubjectRelationVo;
 import com.zd.model.annotation.Excel;
 import com.zd.model.entity.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
 
 import java.util.List;
 
@@ -64,6 +63,13 @@ public class LabRiskPlan extends BaseEntity {
     private Long userId;
 
     /**
+     * 启动条件
+     */
+    @ApiModelProperty(value = "启动条件")
+    @Excel(name = "启动条件")
+    private String startCondition;
+
+    /**
      * 短信内容
      */
     @ApiModelProperty(value = "短信内容")
@@ -89,7 +95,7 @@ public class LabRiskPlan extends BaseEntity {
      */
     @ApiModelProperty(value = "预案级别")
     @Excel(name = "预案级别")
-    private String level;
+    private Integer level;
 
     /**
      * 是否疏散:1是,0否
@@ -123,6 +129,11 @@ public class LabRiskPlan extends BaseEntity {
     private Long floorId;
 
     /**
+     * 预案级别列表
+     */
+    private List<LabRiskPlanLevel> labRiskPlanLevels;
+
+    /**
      * 风险预案与硬件关联
      */
     List<LabRiskPlanHardwareRelation> riskPlanHardwareList;
@@ -133,6 +144,9 @@ public class LabRiskPlan extends BaseEntity {
     List<LabRiskPlanSensorRelation> riskPlanSensorList;
 
 
+    @ApiModelProperty(name = "传感器危险源关联列表")
+    private List<RiskPlanSubjectRelationVo> riskPlanSubjectRelationVoList;
+
     List<LabRiskPlanjoinsub> labRiskPlanjoinsubList;
 
     private Integer riskPlanSensorSize;
@@ -182,6 +196,14 @@ public class LabRiskPlan extends BaseEntity {
         return userId;
     }
 
+    public String getStartCondition() {
+        return startCondition;
+    }
+
+    public void setStartCondition(String startCondition) {
+        this.startCondition = startCondition;
+    }
+
     public void setMessage(String message) {
         this.message = message;
     }
@@ -198,11 +220,11 @@ public class LabRiskPlan extends BaseEntity {
         return voicebroadcast==null?"":voicebroadcast;
     }
 
-    public void setLevel(String level) {
+    public void setLevel(Integer level) {
         this.level = level;
     }
 
-    public String getLevel() {
+    public Integer getLevel() {
         return level;
     }
 
@@ -238,22 +260,6 @@ public class LabRiskPlan extends BaseEntity {
         this.containerId = containerId;
     }
 
-    public List<LabRiskPlanHardwareRelation> getRiskPlanHardwareList() {
-        return riskPlanHardwareList;
-    }
-
-    public void setRiskPlanHardwareList(List<LabRiskPlanHardwareRelation> riskPlanHardwareList) {
-        this.riskPlanHardwareList = riskPlanHardwareList;
-    }
-
-    public List<LabRiskPlanSensorRelation> getRiskPlanSensorList() {
-        return riskPlanSensorList;
-    }
-
-    public void setRiskPlanSensorList(List<LabRiskPlanSensorRelation> riskPlanSensorList) {
-        this.riskPlanSensorList = riskPlanSensorList;
-    }
-
     public String getInformation() {
         return information==null?"":information;
     }
@@ -278,6 +284,14 @@ public class LabRiskPlan extends BaseEntity {
         this.labRiskPlanjoinsubList = labRiskPlanjoinsubList;
     }
 
+    public List<RiskPlanSubjectRelationVo> getRiskPlanSubjectRelationVoList() {
+        return riskPlanSubjectRelationVoList;
+    }
+
+    public void setRiskPlanSubjectRelationVoList(List<RiskPlanSubjectRelationVo> riskPlanSubjectRelationVoList) {
+        this.riskPlanSubjectRelationVoList = riskPlanSubjectRelationVoList;
+    }
+
     public Boolean getYesOrNo() {
         return yesOrNo;
     }
@@ -309,4 +323,28 @@ public class LabRiskPlan extends BaseEntity {
     public void setAllSelect(Boolean allSelect) {
         this.allSelect = allSelect;
     }
+
+    public List<LabRiskPlanLevel> getLabRiskPlanLevels() {
+        return labRiskPlanLevels;
+    }
+
+    public void setLabRiskPlanLevels(List<LabRiskPlanLevel> labRiskPlanLevels) {
+        this.labRiskPlanLevels = labRiskPlanLevels;
+    }
+
+    public List<LabRiskPlanHardwareRelation> getRiskPlanHardwareList() {
+        return riskPlanHardwareList;
+    }
+
+    public void setRiskPlanHardwareList(List<LabRiskPlanHardwareRelation> riskPlanHardwareList) {
+        this.riskPlanHardwareList = riskPlanHardwareList;
+    }
+
+    public List<LabRiskPlanSensorRelation> getRiskPlanSensorList() {
+        return riskPlanSensorList;
+    }
+
+    public void setRiskPlanSensorList(List<LabRiskPlanSensorRelation> riskPlanSensorList) {
+        this.riskPlanSensorList = riskPlanSensorList;
+    }
 }

+ 0 - 136
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/LabRiskPlanAbnormalDesc.java

@@ -1,136 +0,0 @@
-package com.zd.laboratory.domain;
-
-import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.zd.model.entity.BaseEntity;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import io.swagger.models.auth.In;
-
-import java.time.LocalDateTime;
-import java.util.Date;
-
-/**
- * <p>
- * 风险概况
- * </p>
- *
- * @author linft
- * @since 2022-12-09
- */
-@ApiModel(value = "LabRiskPlanAbnormalDesc对象", description = "风险概况")
-public class LabRiskPlanAbnormalDesc extends BaseEntity {
-    private static final long serialVersionUID = 1L;
-
-    @ApiModelProperty("主键")
-    private Long descId;
-
-    @ApiModelProperty("风险组")
-    private Long groupId;
-
-    @ApiModelProperty("风险事故原因")
-    private String riskReason;
-
-    @ApiModelProperty("风险等级")
-    private Integer riskLevel;
-
-    @ApiModelProperty("发生时间")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date startDate;
-
-    @ApiModelProperty("结束时间")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date endDate;
-
-    @ApiModelProperty("持续时长(s)")
-    private Long riskDuration;
-
-    @ApiModelProperty("风险响应人员")
-    private String handledPerson;
-
-    @ApiModelProperty("实验室内人员")
-    private String internalPerson;
-
-    @ApiModelProperty("现场记录(视频)")
-    private String recordVideo;
-
-    public Long getDescId() {
-        return descId;
-    }
-
-    public Long getGroupId() {
-        return groupId;
-    }
-
-    public String getRiskReason() {
-        return riskReason;
-    }
-
-    public Integer getRiskLevel() {
-        return riskLevel;
-    }
-
-    public Date getStartDate() {
-        return startDate;
-    }
-
-    public Date getEndDate() {
-        return endDate;
-    }
-
-    public Long getRiskDuration() {
-        return riskDuration;
-    }
-
-    public String getRecordVideo() {
-        return recordVideo;
-    }
-
-    public void setDescId(Long descId) {
-        this.descId = descId;
-    }
-
-    public void setGroupId(Long groupId) {
-        this.groupId = groupId;
-    }
-
-    public void setRiskReason(String riskReason) {
-        this.riskReason = riskReason;
-    }
-
-    public void setRiskLevel(Integer riskLevel) {
-        this.riskLevel = riskLevel;
-    }
-
-    public void setStartDate(Date startDate) {
-        this.startDate = startDate;
-    }
-
-    public void setEndDate(Date endDate) {
-        this.endDate = endDate;
-    }
-
-    public void setRiskDuration(Long riskDuration) {
-        this.riskDuration = riskDuration;
-    }
-
-    public void setRecordVideo(String recordVideo) {
-        this.recordVideo = recordVideo;
-    }
-
-    public String getHandledPerson() {
-        return handledPerson;
-    }
-
-    public void setHandledPerson(String handledPerson) {
-        this.handledPerson = handledPerson;
-    }
-
-    public String getInternalPerson() {
-        return internalPerson;
-    }
-
-    public void setInternalPerson(String internalPerson) {
-        this.internalPerson = internalPerson;
-    }
-}

+ 0 - 28
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/LabRiskPlanAbnormalGroup.java

@@ -39,18 +39,6 @@ public class LabRiskPlanAbnormalGroup extends BaseEntity {
     private Long subjectId;
 
     /**
-     * 实验室名称
-     */
-    @ApiModelProperty(value = "实验室名称")
-    private String subjectName;
-
-    /**
-     * 预案属性:1-火灾预案、2-非火灾预案
-     */
-    @ApiModelProperty(value = "预案属性")
-    private Integer riskAttribute;
-
-    /**
      * 组级状态,(1组开始,0是组关闭)
      */
     @ApiModelProperty(value = "组级状态,(1组开始,0是组关闭)")
@@ -89,20 +77,4 @@ public class LabRiskPlanAbnormalGroup extends BaseEntity {
     public void setStatus(Long status) {
         this.status = status;
     }
-
-    public String getSubjectName() {
-        return subjectName;
-    }
-
-    public Integer getRiskAttribute() {
-        return riskAttribute;
-    }
-
-    public void setSubjectName(String subjectName) {
-        this.subjectName = subjectName;
-    }
-
-    public void setRiskAttribute(Integer riskAttribute) {
-        this.riskAttribute = riskAttribute;
-    }
 }

+ 19 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/LabRiskPlanHardwareRelation.java

@@ -1,5 +1,7 @@
 package com.zd.laboratory.domain;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.zd.model.annotation.Excel;
 import com.zd.model.entity.BaseEntity;
 import io.swagger.annotations.ApiModel;
@@ -21,6 +23,7 @@ public class LabRiskPlanHardwareRelation extends BaseEntity {
      * 自增主键
      */
     @ApiModelProperty(value = "${comment}")
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long id;
 
     /**
@@ -31,6 +34,13 @@ public class LabRiskPlanHardwareRelation extends BaseEntity {
     private Long riskPlanId;
 
     /**
+     * 风险预案id
+     */
+    @ApiModelProperty(value = "风险预案级别id")
+    @Excel(name = "风险预案级别id")
+    private Long riskPlanLevelId;
+
+    /**
      * 硬件id
      */
     @ApiModelProperty(value = "硬件id")
@@ -151,11 +161,20 @@ public class LabRiskPlanHardwareRelation extends BaseEntity {
         this.overActName = overActName;
     }
 
+    public Long getRiskPlanLevelId() {
+        return riskPlanLevelId;
+    }
+
+    public void setRiskPlanLevelId(Long riskPlanLevelId) {
+        this.riskPlanLevelId = riskPlanLevelId;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                 .append("id", getId())
                 .append("riskPlanId", getRiskPlanId())
+                .append("riskPlanLevelId", getRiskPlanLevelId())
                 .append("hardwareId", getHardwareId())
                 .append("operate", getOperate())
                 .append("createTime", getCreateTime())

+ 193 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/LabRiskPlanLevel.java

@@ -0,0 +1,193 @@
+package com.zd.laboratory.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+  * @Description 预案级别表
+  * @Author hzw
+  * @Date 2022/11/29 16:13
+  * @Version 2.0
+  */ 
+/**
+    * 预案级别表
+    */
+@ApiModel(value="预案级别表")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName(value = "lab_risk_plan_level")
+public class LabRiskPlanLevel implements Serializable {
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value="主键id")
+    private Long id;
+
+    /**
+     * 预案id
+     */
+    @TableField(value = "risk_plan_id")
+    @ApiModelProperty(value="预案id")
+    private Long riskPlanId;
+
+    /**
+     * 预案级别
+     */
+    @TableField(value = "risk_plan_level")
+    @ApiModelProperty(value="预案级别 1低风险、2中风险、3较高风险、4高风险")
+    private Integer riskPlanLevel;
+
+    /**
+     * 是否联动疏散
+     */
+    @TableField(value = "if_exit")
+    @ApiModelProperty(value="是否联动疏散 0否1是")
+    private Integer ifExit;
+
+    /**
+     * 部门id
+     */
+    @TableField(value = "dept_id")
+    @ApiModelProperty(value="部门id")
+    private Long deptId;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_time")
+    @ApiModelProperty(value="创建时间")
+    private LocalDateTime createTime;
+
+    /**
+     * 部门名称
+     */
+    @TableField(value = "dept_name")
+    @ApiModelProperty(value="部门名称")
+    private String deptName;
+
+    /**
+     * 创建人(用于数据权限)
+     */
+    @TableField(value = "user_id")
+    @ApiModelProperty(value="创建人(用于数据权限)")
+    private Long userId;
+
+    /**
+     * 创建人
+     */
+    @TableField(value = "create_by")
+    @ApiModelProperty(value="创建人")
+    private String createBy;
+
+    /**
+     * 修改时间
+     */
+    @TableField(value = "update_time")
+    @ApiModelProperty(value="修改时间")
+    private LocalDateTime updateTime;
+
+    /**
+     * 修改人
+     */
+    @TableField(value = "update_by")
+    @ApiModelProperty(value="修改人")
+    private String updateBy;
+
+    /**
+     * 预案描述
+     */
+    @TableField(value = "remark")
+    @ApiModelProperty(value="预案描述")
+    private String remark;
+
+    /**
+     * 启动条件
+     */
+    @TableField(exist = false)
+    @ApiModelProperty(value="启动条件")
+    private String startCondition;
+
+    /**
+     * 风险预案与硬件关联
+     */
+    @TableField(exist = false)
+    private List<LabRiskPlanHardwareRelation> riskPlanHardwareList;
+
+    /**
+     * 风险管理和传感器关联
+     */
+    @TableField(exist = false)
+    private List<LabRiskPlanSensorRelation> riskPlanSensorList;
+
+    /**
+     * 预案名称
+     */
+    @TableField(exist = false)
+    private String riskName;
+
+    /**
+     * 预案名称
+     */
+    @TableField(exist = false)
+    private String topName;
+
+    /**
+     * 楼层id
+     */
+    @TableField(exist = false)
+    private Long floorId;
+
+
+    @TableField(exist = false)
+    private String voicebroadcast;
+
+    @TableField(exist = false)
+    private String message;
+
+    @TableField(exist = false)
+    private String information;
+
+
+    private static final long serialVersionUID = 5240521020283577787L;
+
+    public static final String COL_ID = "id";
+
+    public static final String COL_RISK_PLAN_ID = "risk_plan_id";
+
+    public static final String COL_RISK_PLAN_LEVEL = "risk_plan_level";
+
+    public static final String COL_IS_EXIT = "is_exit";
+
+    public static final String COL_DEPT_ID = "dept_id";
+
+    public static final String COL_CREATE_TIME = "create_time";
+
+    public static final String COL_DEPT_NAME = "dept_name";
+
+    public static final String COL_USER_ID = "user_id";
+
+    public static final String COL_CREATE_BY = "create_by";
+
+    public static final String COL_UPDATE_TIME = "update_time";
+
+    public static final String COL_UPDATE_BY = "update_by";
+
+    public static final String COL_REMARK = "remark";
+
+}

+ 35 - 1
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/LabRiskPlanSensorRelation.java

@@ -1,5 +1,7 @@
 package com.zd.laboratory.domain;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.zd.model.annotation.Excel;
 import com.zd.model.entity.BaseEntity;
 import io.swagger.annotations.ApiModel;
@@ -23,6 +25,7 @@ public class LabRiskPlanSensorRelation extends BaseEntity {
      * 自增主见
      */
     @ApiModelProperty(value = "${comment}")
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long id;
 
     /**
@@ -33,6 +36,13 @@ public class LabRiskPlanSensorRelation extends BaseEntity {
     private Long riskPlanId;
 
     /**
+     * 风险预案id
+     */
+    @ApiModelProperty(value = "风险预案级别id")
+    @Excel(name = "风险预案级别id")
+    private Long riskPlanLevelId;
+
+    /**
      * 传感器id
      */
     @ApiModelProperty(value = "传感器id")
@@ -67,6 +77,12 @@ public class LabRiskPlanSensorRelation extends BaseEntity {
     @ApiModelProperty("功能描述名称")
     private String describe;
 
+    /**
+     * 传感器类型
+     */
+    @ApiModelProperty("传感器类型")
+    private Integer sensorType;
+
 
     public void setId(Long id) {
         this.id = id;
@@ -124,16 +140,34 @@ public class LabRiskPlanSensorRelation extends BaseEntity {
         this.describe = describe;
     }
 
+    public Long getRiskPlanLevelId() {
+        return riskPlanLevelId;
+    }
+
+    public void setRiskPlanLevelId(Long riskPlanLevelId) {
+        this.riskPlanLevelId = riskPlanLevelId;
+    }
+
+    public Integer getSensorType() {
+        return sensorType;
+    }
+
+    public void setSensorType(Integer sensorType) {
+        this.sensorType = sensorType;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                 .append("id", getId())
                 .append("riskPlanId", getRiskPlanId())
+                .append("riskPlanLevelId", getRiskPlanLevelId())
                 .append("sensorId", getSensorId())
                 .append("minMonitor", getMinMonitor())
                 .append("maxMonitor", getMaxMonitor())
                 .append("createTime", getCreateTime())
-                .append("getFunNum", getFunNum())
+                .append("funNum", getFunNum())
+                .append("sensorType", getSensorType())
                 .toString();
     }
 }

+ 3 - 3
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/LabRiskPlanjoinsub.java

@@ -1,11 +1,11 @@
 package com.zd.laboratory.domain;
 
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
 import com.zd.model.annotation.Excel;
+import com.zd.model.entity.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import com.zd.model.entity.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
 
 /**
  * 【请填写功能名称】对象 lab_risk_planjoinsub

+ 99 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/LabSensorHazardRelation.java

@@ -0,0 +1,99 @@
+package com.zd.laboratory.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+  * @Description 传感器危险源关联表
+  * @Author hzw
+  * @Date 2022/12/1 16:59
+  * @Version 2.0
+  */ 
+/**
+    * 传感器危险源关联表
+    */
+@ApiModel(value="传感器危险源关联表")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName(value = "lab_sensor_hazard_relation")
+public class LabSensorHazardRelation implements Serializable {
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value="主键id")
+    private Long id;
+
+    /**
+     * 预案id
+     */
+    @TableField(value = "risk_plan_id")
+    @ApiModelProperty(value="预案id")
+    private Long riskPlanId;
+
+    /**
+     * 实验室id
+     */
+    @TableField(value = "subject_id")
+    @ApiModelProperty(value="实验室id")
+    private Long subjectId;
+
+    /**
+     * 传感器id
+     */
+    @TableField(value = "sensor_id")
+    @ApiModelProperty(value="传感器id")
+    private Long sensorId;
+
+    /**
+     * 危险源id
+     */
+    @TableField(value = "hazard_subject_id")
+    @ApiModelProperty(value="实验室危险源id")
+    private Long hazardSubjectId;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_time")
+    @ApiModelProperty(value="创建时间")
+    private LocalDateTime createTime;
+
+    /**
+     * 传感器名称
+     */
+    @ApiModelProperty(value="传感器名称")
+    @TableField(exist = false)
+    private String sensorName;
+
+    /**
+     * 危险源名称
+     */
+    @TableField(exist = false)
+    @ApiModelProperty(value="危险源名称")
+    private String hazardName;
+
+    private static final long serialVersionUID = -8593683155449312087L;
+
+    public static final String COL_ID = "id";
+
+    public static final String COL_SENSOR_ID = "sensor_id";
+
+    public static final String COL_HAZARD_SUBJECT_ID = "hazard_subject_id";
+
+    public static final String COL_CREATE_TIME = "create_time";
+}

+ 0 - 1
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/dto/LabRiskPlanDTO.java

@@ -73,7 +73,6 @@ public class LabRiskPlanDTO extends BaseEntity {
     /**
      *  预案关联的实验室
      */
-    @ApiModelProperty(value = "结束时间")
     List <LabRiskPlanjoinsub> labRiskPlanjoinsubList;
 
     public Long getId() {

+ 21 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/dto/LabRiskPlanInfoDTO.java

@@ -0,0 +1,21 @@
+package com.zd.laboratory.domain.dto;
+
+import com.zd.laboratory.domain.LabRiskPlanLevel;
+import lombok.Data;
+
+/**
+ * @Description TODO
+ * @Author hzw
+ * @Date 2022/12/9 14:40
+ * @Version 2.0
+ */
+@Data
+public class LabRiskPlanInfoDTO {
+
+    private Long RiskPlanId;
+    private String riskPlanName;
+
+    private LabRiskPlanLevel labRiskPlanLevel;
+
+
+}

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

@@ -17,8 +17,8 @@ import java.util.List;
 @ApiModel("风险预案组Vo")
 public class LabRiskPlanAbnormalGroupVO extends LabRiskPlanAbnormalGroup {
 
-    /*@ApiModelProperty(value = "实验室名称")
-    private String subjectName;*/
+    @ApiModelProperty(value = "实验室名称")
+    private String subjectName;
 
     @ApiModelProperty(value = "学校id")
     private String buildId;
@@ -49,13 +49,13 @@ public class LabRiskPlanAbnormalGroupVO extends LabRiskPlanAbnormalGroup {
 
     private List<LabHardware> hardwareList;
 
-    /*public String getSubjectName() {
+    public String getSubjectName() {
         return subjectName;
     }
 
     public void setSubjectName(String subjectName) {
         this.subjectName = subjectName;
-    }*/
+    }
 
     public List <LabHardware> getHardwareList() {
         return hardwareList;

+ 46 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/LabRiskPlanSubVo.java

@@ -0,0 +1,46 @@
+package com.zd.laboratory.domain.vo;
+
+import com.zd.laboratory.domain.LabSensorHazardRelation;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Description 传感器危险源关联请求类
+ * @Author hzw
+ * @Date 2022/12/1 16:04
+ * @Version 2.0
+ */
+@Data
+public class LabRiskPlanSubVo {
+
+    @ApiModelProperty(value = "当前页")
+    private Integer pageNum;
+    @ApiModelProperty(value = "页码大小")
+    private Integer pageSize;
+
+    @ApiModelProperty(name = "预案id")
+    private Long riskPlanId;
+    @ApiModelProperty(name = "实验室id")
+    private Long subjectId;
+    @ApiModelProperty(name = "查询条件")
+    private String searchValue;
+    @ApiModelProperty(name = "安全分类")
+    private Integer typeId;
+    @ApiModelProperty(name = "安全分级")
+    private Integer level;
+    @ApiModelProperty(value = "开始时间")
+    private String startTime;
+    @ApiModelProperty(value = "结束时间")
+    private String endTime;
+
+    @ApiModelProperty(name = "实验室ids")
+    private String subjectIds;
+
+//    @ApiModelProperty(name = "传感器类型字符串")
+//    private String types;
+
+    @ApiModelProperty(name = "传感器危险源关联列表")
+    private List<LabSensorHazardRelation> labSensorHazardRelations;
+}

+ 21 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/LabRiskPlanSubVoInfo.java

@@ -0,0 +1,21 @@
+package com.zd.laboratory.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Description TODO
+ * @Author hzw
+ * @Date 2022/12/10 13:49
+ * @Version 2.0
+ */
+@Data
+public class LabRiskPlanSubVoInfo {
+
+    @ApiModelProperty("是否覆盖传感器重复区间预案")
+    private Integer yesOrNo;
+
+    private List<LabRiskPlanSubVo> labRiskPlanSubVos;
+}

+ 58 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/LabSubjectVO.java

@@ -1,8 +1,11 @@
 package com.zd.laboratory.domain.vo;
 
+import com.zd.laboratory.domain.LabSensor;
+import com.zd.laboratory.domain.LabSensorHazardRelation;
 import com.zd.laboratory.domain.LabSubject;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.util.List;
 
@@ -97,6 +100,61 @@ public class LabSubjectVO extends LabSubject {
     @ApiModelProperty(value = "化学品临界值危险指标")
     private String riskIndicator = "无化学品";
 
+    @ApiModelProperty("传感器list")
+    private List<LabSensor> labSensorList;
+    @ApiModelProperty("危险源list")
+    private List<LabHazardSubVO> labHazardSubVOList;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty("关联时间")
+    private String relationTime;
+
+    @ApiModelProperty("实验室传感器与预案传感器是否一致")
+    private String senseState;
+
+    @ApiModelProperty(name = "传感器危险源关联列表")
+    private List<LabSensorHazardRelation> labSensorHazardRelations;
+
+    public String getSenseState() {
+        return senseState;
+    }
+
+    public void setSenseState(String senseState) {
+        this.senseState = senseState;
+    }
+
+    public List<LabHazardSubVO> getLabHazardSubVOList() {
+        return labHazardSubVOList;
+    }
+
+    public void setLabHazardSubVOList(List<LabHazardSubVO> labHazardSubVOList) {
+        this.labHazardSubVOList = labHazardSubVOList;
+    }
+
+    public List<LabSensor> getLabSensorList() {
+        return labSensorList;
+    }
+
+    public void setLabSensorList(List<LabSensor> labSensorList) {
+        this.labSensorList = labSensorList;
+    }
+
+    public String getRelationTime() {
+        return relationTime;
+    }
+
+    public void setRelationTime(String relationTime) {
+        this.relationTime = relationTime;
+    }
+
+    public List<LabSensorHazardRelation> getLabSensorHazardRelations() {
+        return labSensorHazardRelations;
+    }
+
+    public void setLabSensorHazardRelations(List<LabSensorHazardRelation> labSensorHazardRelations) {
+        this.labSensorHazardRelations = labSensorHazardRelations;
+    }
+
     public LabSubjectVO() {
     }
 

+ 18 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/RiskPlanSubjectRelationVo.java

@@ -0,0 +1,18 @@
+package com.zd.laboratory.domain.vo;
+
+import com.zd.laboratory.domain.LabSensorHazardRelation;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Description TODO
+ * @Author hzw
+ * @Date 2022/12/2 14:38
+ * @Version 2.0
+ */
+@Data
+public class RiskPlanSubjectRelationVo {
+    private long SubjectId;
+    private List<LabSensorHazardRelation> labSensorHazardRelations;
+}

+ 46 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/RiskPlanVo.java

@@ -0,0 +1,46 @@
+package com.zd.laboratory.domain.vo;
+
+import com.zd.laboratory.domain.LabRiskPlanLevel;
+import com.zd.laboratory.domain.LabRiskPlanjoinsub;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Description 预案信息请求参数
+ * @Author hzw
+ * @Date 2022/12/1 10:40
+ * @Version 2.0
+ */
+@Data
+@ApiModel("预案信息请求参数")
+public class RiskPlanVo {
+
+    @ApiModelProperty(value = "当前页")
+    private Integer pageNum;
+
+    @ApiModelProperty(value = "页码大小")
+    private Integer pageSize;
+    /**
+     * 查询参数
+     */
+    @ApiModelProperty(value = "查询参数")
+    private String searchValue;
+    /**
+     * 启动条件
+     */
+    @ApiModelProperty(value = "启动条件")
+    private String startCondition;
+
+    /**
+     * 预案分级信息列表
+     */
+    List<LabRiskPlanLevel> labRiskPlanLevels;
+
+    /**
+     *  预案关联的实验室列表
+     */
+    List<LabRiskPlanjoinsub> labRiskPlanjoinsubList;
+}

+ 34 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/TriggerRiskPlanInfo.java

@@ -0,0 +1,34 @@
+package com.zd.laboratory.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Description TODO
+ * @Author hzw
+ * @Date 2022/12/9 14:20
+ * @Version 2.0
+ */
+
+@Data
+public class TriggerRiskPlanInfo {
+
+    @ApiModelProperty("楼栋id")
+    private Long buildingId;
+
+    @ApiModelProperty("楼栋名称")
+    private String buildingName;
+
+    @ApiModelProperty("楼层id")
+    private Long floorId;
+
+    @ApiModelProperty("楼层名称")
+    private String floorName;
+
+    @ApiModelProperty("实验室id")
+    private Long subjectId;
+
+    @ApiModelProperty("实验室名称")
+    private String subjectName;
+
+}

+ 4 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabBuildFloorLayoutMapper.java

@@ -64,4 +64,8 @@ public interface LabBuildFloorLayoutMapper {
      */
     public int deleteLabBuildFloorLayoutByIds(Long[] ids);
 
+    /**
+     * 根据实验室id 查询 楼栋 楼层 实验室信息
+     */
+    LabBuildFloorLayoutVo selectBuildInfoBySubId(Long subjectId);
 }

+ 0 - 53
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabRiskPlanAbnormalDescMapper.java

@@ -1,53 +0,0 @@
-package com.zd.laboratory.mapper;
-
-import com.zd.laboratory.domain.LabRiskPlanAbnormalDesc;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import java.util.List;
-
-/**
- * <p>
- * 风险概况 Mapper 接口
- * </p>
- *
- * @author linft
- * @since 2022-12-09
- */
-public interface LabRiskPlanAbnormalDescMapper {
-
-    /**
-     * 插入一条记录
-     *
-     * @param labRiskPlanAbnormalDesc 实体对象
-     */
-    int insert(LabRiskPlanAbnormalDesc labRiskPlanAbnormalDesc);
-
-    /**
-     * 根据 ID 修改
-     *
-     * @param labRiskPlanAbnormalDesc 实体对象
-     */
-    int updateById(LabRiskPlanAbnormalDesc labRiskPlanAbnormalDesc);
-
-    /**
-     * 根据 ID 删除
-     *
-     * @param descId 主键ID
-     */
-    int deleteById(Long descId);
-
-
-    /**
-     * 根据 ID 查询
-     *
-     * @param descId 主键ID
-     */
-    LabRiskPlanAbnormalDesc selectById(Long descId);
-
-    /**
-     * 查询(根据 columnMap 条件)
-     *
-     * @param labRiskPlanAbnormalDesc 表字段 map 对象
-     */
-    List<LabRiskPlanAbnormalDesc> selectByList(LabRiskPlanAbnormalDesc labRiskPlanAbnormalDesc);
-}

+ 9 - 22
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabRiskPlanAbnormalGroupMapper.java

@@ -21,7 +21,7 @@ public interface LabRiskPlanAbnormalGroupMapper {
      * @param labRiskPlanAbnormalGroup 风险异常组级
      * @return 风险异常日志集合
      */
-    List <LabRiskPlanAbnormalGroupVO> selectLabRiskPlanAbnormalGroupList(LabRiskPlanAbnormalGroup labRiskPlanAbnormalGroup);
+    public List <LabRiskPlanAbnormalGroupVO> selectLabRiskPlanAbnormalGroupList(LabRiskPlanAbnormalGroup labRiskPlanAbnormalGroup);
 
     /**
      * 根据组织机构查询风险异常组级列表
@@ -29,7 +29,7 @@ public interface LabRiskPlanAbnormalGroupMapper {
      * @param labRiskPlanAbnormalGroup 风险异常组级
      * @return 风险异常日志集合
      */
-    List <LabRiskPlanAbnormalGroupVO> selectLabRiskPlanAbnormalGroupListByDept(LabRiskPlanAbnormalGroup labRiskPlanAbnormalGroup);
+    public List <LabRiskPlanAbnormalGroupVO> selectLabRiskPlanAbnormalGroupListByDept(LabRiskPlanAbnormalGroup labRiskPlanAbnormalGroup);
 
 
     /**
@@ -38,7 +38,10 @@ public interface LabRiskPlanAbnormalGroupMapper {
      * @param labRiskPlanAbnormalGroup 风险异常组级
      * @return 结果
      */
-    int insertLabRiskPlanAbnormalGroup(LabRiskPlanAbnormalGroup labRiskPlanAbnormalGroup);
+    public int insertLabRiskPlanAbnormalGroup(LabRiskPlanAbnormalGroup labRiskPlanAbnormalGroup);
+
+
+
 
     /**
      * 修改风险异常组级
@@ -46,7 +49,7 @@ public interface LabRiskPlanAbnormalGroupMapper {
      * @param labRiskPlanAbnormalGroup 风险异常组级
      * @return 结果
      */
-    int updateLabRiskPlanAbnormalGroup(LabRiskPlanAbnormalGroup labRiskPlanAbnormalGroup);
+    public int updateLabRiskPlanAbnormalGroup(LabRiskPlanAbnormalGroup labRiskPlanAbnormalGroup);
 
 
     /**
@@ -54,28 +57,12 @@ public interface LabRiskPlanAbnormalGroupMapper {
      * @param subId 实验室ID
      * @return
      */
-    List<String> queryWranFunNumBySubId(Long subId);
+    public List<String> queryWranFunNumBySubId(Long subId);
 
     /**
      * 批量查询 实验室当前预警
      * @param subIds
      * @return
      */
-    List<SubWarnFunctions> queryWranFunNumBySubIds(Long... subIds);
-
-
-    /**
-     * 按ID查询
-     * @param id
-     * @return
-     */
-    LabRiskPlanAbnormalGroup selectById(Long id);
-
-    /**
-     * 查询执行预案记录
-     * @author linft
-     * @param group
-     * @return
-     */
-    List<LabRiskPlanAbnormalGroup> queryRiskExeRecordList(LabRiskPlanAbnormalGroup group);
+    public List<SubWarnFunctions> queryWranFunNumBySubIds(Long... subIds);
 }

+ 8 - 3
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabRiskPlanHardwareRelationMapper.java

@@ -1,17 +1,18 @@
 package com.zd.laboratory.mapper;
 
-import java.util.List;
-
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zd.laboratory.domain.LabRiskPlanHardwareRelation;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * 风险预案与硬件关联Mapper接口
  *
  * @author zd
  * @date 2021-09-03
  */
-public interface LabRiskPlanHardwareRelationMapper {
+public interface LabRiskPlanHardwareRelationMapper extends BaseMapper<LabRiskPlanHardwareRelation> {
     /**
      * 查询风险预案与硬件关联
      *
@@ -65,4 +66,8 @@ public interface LabRiskPlanHardwareRelationMapper {
     List<LabRiskPlanHardwareRelation> selectLabRiskPlanHardwareRelationByRiskPlanIdId(Long id);
 
     int deleteByPlanId(Long riskPlanId);
+
+    int deleteByLevelId(Long riskPlanLevelId);
+
+    List<LabRiskPlanHardwareRelation> selectHardwareRelationListByLevelId(Long riskPlanLevelId);
 }

+ 21 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabRiskPlanLevelMapper.java

@@ -0,0 +1,21 @@
+package com.zd.laboratory.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zd.laboratory.domain.LabRiskPlanLevel;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+  * @Description TODO
+  * @Author hzw
+  * @Date 2022/11/29 16:13
+  * @Version 2.0
+  */ 
+@Mapper
+public interface LabRiskPlanLevelMapper extends BaseMapper<LabRiskPlanLevel> {
+    int batchInsert(@Param("list") List<LabRiskPlanLevel> list);
+
+    LabRiskPlanLevel queryRiskPlanLevelByLevelIds(String levelIds);
+}

+ 21 - 2
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabRiskPlanMapper.java

@@ -1,8 +1,14 @@
 package com.zd.laboratory.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zd.laboratory.domain.LabRiskPlan;
 import com.zd.laboratory.domain.dto.LabRiskPlanDTO;
+import com.zd.laboratory.domain.vo.LabRiskPlanSubVo;
 import com.zd.laboratory.domain.vo.LabRiskPlanVO;
+import com.zd.laboratory.domain.vo.LabSubjectVO;
+import com.zd.laboratory.domain.vo.RiskPlanVo;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -12,7 +18,7 @@ import java.util.List;
  * @author zd
  * @date 2021-09-03
  */
-public interface LabRiskPlanMapper {
+public interface LabRiskPlanMapper extends BaseMapper<LabRiskPlan> {
     /**
      * 查询风险预案
      *
@@ -59,15 +65,28 @@ public interface LabRiskPlanMapper {
      * @param ids 需要删除的数据主键集合
      * @return 结果
      */
-    public int deleteLabRiskPlanByIds(Long[] ids);
+    int deleteLabRiskPlanByIds(String ids);
 
     List<LabRiskPlanDTO> selectLabRiskPlanStatisticList(LabRiskPlanDTO labRiskPlan);
 
     List<LabRiskPlan> selectLabRiskPlanBySubjectList(LabRiskPlanVO labRiskPlanVo);
 
+    LabRiskPlan selectLabRiskPlanByRiskPlanId(@Param("riskPlanId") Long riskPlanId);
     /**
      * 查询实验室详情预案统计
      * @param subId 实验室ID
      */
     List<com.zd.laboratory.api.vo.LabRiskVO> selectRiskPlanCountBySubId(Long subId);
+
+    int selectLabRiskPlanByName(String name);
+
+    Page<LabRiskPlan> queryRiskPlanList(Page<LabRiskPlan> page, @Param("riskPlanVo") RiskPlanVo riskPlanVo);
+
+    List<Integer> selectSensorType(Long riskPlanId);
+
+    Page<LabSubjectVO> selectRelationSubList(Page<LabSubjectVO> page,@Param("labRiskPlanSubVo") LabRiskPlanSubVo labRiskPlanSubVo);
+
+    Page<LabSubjectVO> getLabRiskPlanNoJoinSub(Page<LabSubjectVO> page,@Param("labRiskPlanSubVo") LabRiskPlanSubVo labRiskPlanSubVo);
+
+    List<LabSubjectVO> getLabRiskPlanNoJoinSub(@Param("labRiskPlanSubVo") LabRiskPlanSubVo labRiskPlanSubVo);
 }

+ 15 - 3
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabRiskPlanSensorRelationMapper.java

@@ -1,17 +1,18 @@
 package com.zd.laboratory.mapper;
 
-import java.util.List;
-
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zd.laboratory.domain.LabRiskPlanSensorRelation;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * 风险管理和传感器关联Mapper接口
  *
  * @author zd
  * @date 2021-09-03
  */
-public interface LabRiskPlanSensorRelationMapper {
+public interface LabRiskPlanSensorRelationMapper extends BaseMapper<LabRiskPlanSensorRelation> {
     /**
      * 查询风险管理和传感器关联
      *
@@ -74,4 +75,15 @@ public interface LabRiskPlanSensorRelationMapper {
     List<LabRiskPlanSensorRelation> selectLabRiskPlanSensorRelationByRiskPlanIdId(Long id);
 
     int deleteByPlanId(Long riskPlanId);
+
+    int deleteByLevelId(Long riskPlanLevelId);
+
+    List<LabRiskPlanSensorRelation> selectSensorRelationListByLevelId(Long levelId);
+
+    /**
+     * 根据实验室id查询实验室关联预案相关传感器列表
+     * @Param [subId]
+     * @Return java.util.List<com.zd.laboratory.domain.LabRiskPlanSensorRelation>
+     **/
+    List<LabRiskPlanSensorRelation> selectSensorListBySubId(Long subId);
 }

+ 34 - 4
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabRiskPlanjoinsubMapper.java

@@ -1,12 +1,13 @@
 package com.zd.laboratory.mapper;
 
-import java.util.List;
-
-import com.zd.laboratory.domain.LabRiskPlanSensorRelation;
 import com.zd.laboratory.domain.LabRiskPlanjoinsub;
+import com.zd.laboratory.domain.vo.LabRiskPlanSubVo;
 import com.zd.laboratory.domain.vo.LabRiskPlanjoinsubVO;
+import com.zd.laboratory.domain.vo.LabSubjectVO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * 【请填写功能名称】Mapper接口
  *
@@ -15,6 +16,13 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface LabRiskPlanjoinsubMapper
 {
+
+    /**
+     * 批量新增关联实验室
+     * @Param [list]
+     * @Return int
+     **/
+    int batchInsert(@Param("list") List<LabRiskPlanjoinsub> list);
     /**
      * 查询【请填写功能名称】
      *
@@ -92,7 +100,7 @@ public interface LabRiskPlanjoinsubMapper
     /**
      * 删除
      *
-     * @param id 需要删除的数据主键集合
+     * @param id 预案id
      * @return 结果
      */
     int deleteByPlanjoinsubId(Long id);
@@ -112,4 +120,26 @@ public interface LabRiskPlanjoinsubMapper
      * @return 结果
      */
     int removeByPlanjoinsubId(LabRiskPlanjoinsub labRiskPlanjoinsub);
+
+    /**
+     * 通过预案ids 查询绑定实验室数
+     * @param ids
+     * @return
+     */
+    int selectCount(String ids);
+
+    /**
+     * 根据预案id查询绑定实验室
+     * @param page
+     * @param riskPlanId
+     * @return
+     */
+    List<LabSubjectVO> selectLabRiskPlanjoinsubByRiskPlanId(@Param("riskPlanId") Long riskPlanId);
+
+    /**
+     * 根据预案id和实验室id删除关联预案
+     * @param labRiskPlanSubVo
+     * @return
+     */
+    int deleteByPlanjoinsubByRiskIdAndSubId(@Param("labRiskPlanSubVo") LabRiskPlanSubVo labRiskPlanSubVo);
 }

+ 24 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabSensorHazardRelationMapper.java

@@ -0,0 +1,24 @@
+package com.zd.laboratory.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zd.laboratory.domain.LabSensorHazardRelation;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+  * @Description TODO
+  * @Author hzw
+  * @Date 2022/12/1 16:59
+  * @Version 2.0
+  */ 
+@Mapper
+public interface LabSensorHazardRelationMapper extends BaseMapper<LabSensorHazardRelation> {
+    int updateBatch(List<LabSensorHazardRelation> list);
+
+    int batchInsert(@Param("list") List<LabSensorHazardRelation> list);
+
+    List<LabSensorHazardRelation> getSensorHazardList(@Param("riskPlanId") Long riskPlanId, @Param("id") Long id);
+
+}

+ 6 - 2
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabSensorMapper.java

@@ -1,12 +1,12 @@
 package com.zd.laboratory.mapper;
 
-import java.util.List;
-
 import com.zd.laboratory.domain.LabHardware;
 import com.zd.laboratory.domain.LabSensor;
 import com.zd.laboratory.domain.vo.LabSensorVO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * 传感器Mapper接口
  *
@@ -90,4 +90,8 @@ public interface LabSensorMapper {
     int selectSensorCountBySubIds(@Param ("subjectId") Long subjectId);
 
     List<LabHardware> selectHardWareList(@Param ("gatewayNum") String gatewayNum);
+
+    List<LabSensor> getSensorListBySubId(@Param("id") Long id);
+
+    List<Long> getSensorTypesBySubId(@Param("id") Long id);
 }

+ 2 - 2
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabMessageContentService.java

@@ -1,7 +1,7 @@
 package com.zd.laboratory.service;
 
 import com.zd.laboratory.api.entity.LabMessageContent;
-import com.zd.laboratory.domain.LabRiskPlan;
+import com.zd.laboratory.domain.LabRiskPlanLevel;
 import com.zd.laboratory.domain.dto.LabMessageContentListQuery;
 import com.zd.laboratory.domain.vo.LabMessageContentVO;
 
@@ -43,7 +43,7 @@ public interface ILabMessageContentService {
      * @param subId 实验室ID
      * @param newRiskPlan 预案
      */
-    public void  sendWranMessage(Long subId, LabRiskPlan newRiskPlan,Long groupId);
+    public void  sendWranMessage(Long subId, LabRiskPlanLevel newRiskPlan, Long groupId);
     /**
      * 发送用户消息
      *

+ 0 - 71
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabRiskPlanAbnormalDescService.java

@@ -1,71 +0,0 @@
-package com.zd.laboratory.service;
-
-import com.zd.laboratory.domain.LabRiskPlanAbnormalDesc;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-/**
- * <p>风险概况</p>
- *
- * @author linft
- * @version 1.0
- * @date 12/9/2022
- */
-public interface ILabRiskPlanAbnormalDescService {
-
-    /**
-     * 插入记录
-     *
-     * @param entity 实体对象
-     */
-    int insert(LabRiskPlanAbnormalDesc entity);
-
-    /**
-     * 根据 ID 修改
-     *
-     * @param labRiskPlanAbnormalDesc 实体对象
-     */
-    int updateById(LabRiskPlanAbnormalDesc labRiskPlanAbnormalDesc);
-
-    /**
-     * 根据 ID 删除
-     *
-     * @param descId 主键ID
-     */
-    int deleteById(Long descId);
-
-
-    /**
-     * 根据 ID 查询
-     *
-     * @param descId 主键ID
-     */
-    LabRiskPlanAbnormalDesc selectById(Long descId);
-
-    /**
-     * 查询(根据 columnMap 条件)
-     *
-     * @param labRiskPlanAbnormalDesc 表字段 map 对象
-     */
-    List<LabRiskPlanAbnormalDesc> selectByList(LabRiskPlanAbnormalDesc labRiskPlanAbnormalDesc);
-
-    /**
-     * 添加风险概况
-     * @param groupId 分线记录ID
-     * @param riskReason 风险原因
-     * @param riskLevel 风险级别
-     * @param internalPerson 实验室内人员
-     * @return
-     */
-    int addLabRiskPlanAbnormalDesc(long groupId, String riskReason, int riskLevel, String internalPerson);
-
-    /**
-     * 更新风险概况
-     * @param descId
-     * @param handledPerson
-     * @param recordVideo
-     * @return
-     */
-    int updateLabRiskPlanAbnormalDesc(long descId, String handledPerson, String recordVideo);
-}

+ 3 - 32
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabRiskPlanAbnormalGroupService.java

@@ -1,8 +1,8 @@
 package com.zd.laboratory.service;
 
+import com.zd.laboratory.api.entity.SensorFunctionStatus;
 import com.zd.laboratory.domain.LabRiskPlanAbnormalGroup;
 import com.zd.laboratory.domain.vo.LabRiskPlanAbnormalGroupVO;
-import com.zd.laboratory.api.entity.SensorFunctionStatus;
 
 import java.util.List;
 
@@ -19,7 +19,7 @@ public interface ILabRiskPlanAbnormalGroupService {
      * @param labRiskPlanAbnormalGroup 风险异常组PO
      * @return 风险异常列表
      */
-    List <LabRiskPlanAbnormalGroupVO> selectLabRiskPlanAbnormalGroupList(LabRiskPlanAbnormalGroup labRiskPlanAbnormalGroup);
+    public List <LabRiskPlanAbnormalGroupVO> selectLabRiskPlanAbnormalGroupList(LabRiskPlanAbnormalGroup labRiskPlanAbnormalGroup);
 
 
     /**
@@ -27,34 +27,5 @@ public interface ILabRiskPlanAbnormalGroupService {
      * @return
      * @param subId
      */
-    List<SensorFunctionStatus> queryWranFunNumBySubId(Long subId);
-
-    /**
-     * 查询预案执行记录
-     * @author linft
-     * @param group
-     * @return
-     */
-    List<LabRiskPlanAbnormalGroup> queryRiskExeRecordList(LabRiskPlanAbnormalGroup group);
-
-    /**
-     * 添加预案记录
-     * @param riskPlanName 预案名称
-     * @param subjectId 实验室ID
-     * @param subjectName 实验室名称
-     * @param riskAttribute 预案属性:1-火灾预案、2-非火灾预案
-     * @param riskReason 预案原因
-     * @param riskLevel 预案风险等级
-     * @return
-     */
-    boolean addRiskExeRecord(String riskPlanName, long subjectId, String subjectName, Integer riskAttribute, String riskReason, int riskLevel);
-    
-    /**
-     * 预案执行完成调用更新完成状态
-     * @param groupId 预案(组)记录id
-     * @param handledPerson 处理人,多个用逗号拼接
-     * @param recordVideo 现场视频
-     * @return
-     */
-    boolean doneRiskExeRecord(long groupId, String handledPerson, String recordVideo);
+    public List<SensorFunctionStatus> queryWranFunNumBySubId(Long subId);
 }

+ 18 - 3
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabRiskPlanHardwareRelationService.java

@@ -1,16 +1,17 @@
 package com.zd.laboratory.service;
 
-import java.util.List;
-
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.zd.laboratory.domain.LabRiskPlanHardwareRelation;
 
+import java.util.List;
+
 /**
  * 风险预案与硬件关联Service接口
  *
  * @author zd
  * @date 2021-09-03
  */
-public interface ILabRiskPlanHardwareRelationService {
+public interface ILabRiskPlanHardwareRelationService extends IService<LabRiskPlanHardwareRelation> {
     /**
      * 查询风险预案与硬件关联
      *
@@ -58,4 +59,18 @@ public interface ILabRiskPlanHardwareRelationService {
      * @return 结果
      */
     public int deleteLabRiskPlanHardwareRelationById(Long id);
+
+    /**
+     * 根据分级id删除关联硬件
+     * @Param [riskPlanLevelId]
+     * @Return int
+     **/
+    int deleteByLevelId(Long riskPlanLevelId);
+
+    /**
+     * 根据预案分级id查询硬件关联列表
+     * @Param [riskPlanLevelId 预案分级id]
+     * @Return java.util.List<com.zd.laboratory.domain.LabRiskPlanHardwareRelation>
+     **/
+    List<LabRiskPlanHardwareRelation> selectHardwareRelationListByLevelId(Long riskPlanLevelId);
 }

+ 18 - 3
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabRiskPlanSensorRelationService.java

@@ -1,16 +1,17 @@
 package com.zd.laboratory.service;
 
-import java.util.List;
-
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.zd.laboratory.domain.LabRiskPlanSensorRelation;
 
+import java.util.List;
+
 /**
  * 风险管理和传感器关联Service接口
  *
  * @author zd
  * @date 2021-09-03
  */
-public interface ILabRiskPlanSensorRelationService {
+public interface ILabRiskPlanSensorRelationService extends IService<LabRiskPlanSensorRelation> {
     /**
      * 查询风险管理和传感器关联
      *
@@ -58,4 +59,18 @@ public interface ILabRiskPlanSensorRelationService {
      * @return 结果
      */
     public int deleteLabRiskPlanSensorRelationById(Long id);
+
+    /**
+     * 根据分级id删除
+     * @Param [riskPlanLevelId]
+     * @Return void
+     **/
+    int deleteByLevelId(Long riskPlanLevelId);
+
+    /**
+     * 根据预案分级id查询关联传感器
+     * @Param [id 预案分级id]
+     * @Return java.util.List<com.zd.laboratory.domain.LabRiskPlanSensorRelation>
+     **/
+    List<LabRiskPlanSensorRelation> selectSensorRelationListByLevelId(Long id);
 }

+ 35 - 4
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabRiskPlanService.java

@@ -1,10 +1,13 @@
 package com.zd.laboratory.service;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.zd.laboratory.api.entity.SensorFunctionStatus;
 import com.zd.laboratory.api.vo.SubFunction;
 import com.zd.laboratory.domain.LabRiskPlan;
 import com.zd.laboratory.domain.LabRiskPlanjoinsub;
 import com.zd.laboratory.domain.dto.LabRiskPlanDTO;
+import com.zd.laboratory.domain.vo.*;
 
 import java.util.List;
 import java.util.Map;
@@ -15,7 +18,7 @@ import java.util.Map;
  * @author zd
  * @date 2021-09-03
  */
-public interface ILabRiskPlanService {
+public interface ILabRiskPlanService  extends IService<LabRiskPlan> {
     /**
      * 查询风险预案
      *
@@ -46,7 +49,7 @@ public interface ILabRiskPlanService {
      * @param labRiskPlan 风险预案
      * @return 结果
      */
-    public void insertLabRiskPlan(LabRiskPlan labRiskPlan);
+    Long insertLabRiskPlan(LabRiskPlan labRiskPlan);
 
     /**
      * 修改风险预案
@@ -71,7 +74,7 @@ public interface ILabRiskPlanService {
      * @param labRiskPlan 风险预案
      * @return 结果
      */
-    public void riskPlanJoinSub(LabRiskPlan labRiskPlan);
+//    public void riskPlanJoinSub(Long riskPlanId,List<LabSensorHazardRelation> labSensorHazardRelations);
 
     /**
      * 批量删除风险预案
@@ -79,7 +82,7 @@ public interface ILabRiskPlanService {
      * @param ids 需要删除的风险预案主键集合
      * @return 结果
      */
-    public int deleteLabRiskPlanByIds(Long[] ids);
+    public int deleteLabRiskPlanByIds(String ids);
 
     /**
      * 批量删除风险预案
@@ -124,4 +127,32 @@ public interface ILabRiskPlanService {
      * @return 结果
      */
     public int closePower(Long subId);
+
+    /**
+     * 根据名称查询预案 返回名称相同个数
+     * @Param [name]
+     * @Return int
+     **/
+    int queryByName(String name);
+
+    /**
+     * 查询预案列表
+     * @param labRiskPlan
+     * @return
+     */
+    Page<LabRiskPlan> queryRiskPlanList(Page<LabRiskPlan> page,RiskPlanVo riskPlanVo);
+
+    Page<LabSubjectVO> getLabRiskPlanJoinSubInfo(LabRiskPlanSubVo labRiskPlanSubVo);
+
+    int checkBinding(String ids);
+
+    Page<LabSubjectVO> getLabRiskPlanNoJoinSub(LabRiskPlanSubVo labRiskPlanSubVo);
+
+    Map<String, Object> riskPlanJoinSub(List<LabRiskPlanSubVo> labRiskPlanSubVoList);
+
+    int deleteRiskPlanJoinSub(LabRiskPlanSubVo labRiskPlanSubVo);
+
+    int riskPlanBatchJoinSub(LabRiskPlanSubVo labRiskPlanSubVo);
+
+    List<LabBuildFloorLayoutVo> selectTriggerInfo();
 }

+ 15 - 2
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabSensorService.java

@@ -1,9 +1,8 @@
 package com.zd.laboratory.service;
 
+import com.zd.laboratory.api.entity.SensorFunctionStatus;
 import com.zd.laboratory.domain.LabSensor;
 import com.zd.laboratory.domain.vo.LabSensorVO;
-import com.zd.laboratory.api.entity.SensorFunctionStatus;
-import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -86,4 +85,18 @@ public interface ILabSensorService {
      * @return 功能集合
      */
     public List<SensorFunctionStatus> getFunList();
+
+    /**
+     * 根据实验室id查询传感器列表
+     * @param id
+     * @return
+     */
+    List<LabSensor> getSensorListBySubId(Long id);
+
+    /**
+     * 根据实验室id查询传感器类型列表
+     * @param id
+     * @return
+     */
+    List<Long> getSensorTypesBySubId(Long id);
 }

+ 2 - 2
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabWarnPushMessageService.java

@@ -1,6 +1,6 @@
 package com.zd.laboratory.service;
 
-import com.zd.laboratory.domain.LabRiskPlan;
+import com.zd.laboratory.domain.LabRiskPlanLevel;
 import com.zd.laboratory.domain.LabWarnPushMessage;
 import com.zd.laboratory.domain.vo.LabWarnPushMessageVO;
 import com.zd.model.enums.WarnUserAttrEnum;
@@ -40,5 +40,5 @@ public interface ILabWarnPushMessageService
      * @param subId 实验室id
      * @return 结果
      */
-    public void insertLabWarnPushMessage(Long subId, String userids, Long groupId, LabRiskPlan newRiskPlan, WarnUserAttrEnum warnUserAttrEnum);
+    public void insertLabWarnPushMessage(Long subId, String userids, Long groupId, LabRiskPlanLevel labRiskPlanLevel/*LabRiskPlan newRiskPlan*/, WarnUserAttrEnum warnUserAttrEnum);
 }

+ 59 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/LabRiskPlanLevelService.java

@@ -0,0 +1,59 @@
+package com.zd.laboratory.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zd.laboratory.domain.LabRiskPlanLevel;
+import com.zd.model.domain.ResultData;
+
+import java.util.List;
+
+/**
+ * @Description TODO
+ * @Author hzw
+ * @Date 2022/11/29 16:13
+ * @Version 2.0
+ */
+public interface LabRiskPlanLevelService extends IService<LabRiskPlanLevel> {
+
+
+    /**
+     * 插入预案级别数据
+     * @Param [labRiskPlanLevel 预案级别实体,其中包含传感器和硬件数据]
+     * @Return com.zd.model.domain.ResultData
+     **/
+    ResultData insertLabRiskPlanLevel(LabRiskPlanLevel labRiskPlanLevel);
+
+    /**
+     *修改预案级别数据
+     * @Param [labRiskPlanLevel]
+     * @Return int
+     **/
+    ResultData updateLabRiskPlanLevel(LabRiskPlanLevel labRiskPlanLevel);
+
+    /**
+     * 删除预案级别数据
+     * @Param [id 预案级别id]
+     * @Return int
+     **/
+    int deleteById(LabRiskPlanLevel labRiskPlanLevel);
+
+    /**
+     * 根据预案id删除预案级别数据
+     * @Param [id 预案id]
+     * @Return int
+     **/
+    int deleteByRiskPlanId(String riskPlanIds);
+
+    /**
+     * 查询预案级别数据
+     * @param id 预案id
+     * @return
+     */
+    List<LabRiskPlanLevel> queryRiskPlanLevelList(Long id);
+
+    /**
+     * 根据分级ids 查询最高级别预案相关信息(包含硬件和传感器信息)
+     * @param substring
+     * @return
+     */
+    LabRiskPlanLevel queryRiskPlanLevelByLevelIds(String substring);
+}

+ 27 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/LabSensorHazardRelationService.java

@@ -0,0 +1,27 @@
+package com.zd.laboratory.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zd.laboratory.domain.LabSensorHazardRelation;
+
+import java.util.List;
+    /**
+  * @Description TODO
+  * @Author hzw
+  * @Date 2022/12/1 16:59
+  * @Version 2.0
+  */ 
+public interface LabSensorHazardRelationService extends IService<LabSensorHazardRelation>{
+
+
+    int updateBatch(List<LabSensorHazardRelation> list);
+
+    int batchInsert(List<LabSensorHazardRelation> list);
+
+
+    /**
+     * 查询危险源 传感器关联信息
+     * @Param [riskPlanId 预案id, id 实验室id]
+     * @Return java.util.List<com.zd.laboratory.domain.LabSensorHazardRelation>
+     **/
+    List<LabSensorHazardRelation> getSensorHazardList(Long riskPlanId, Long id);
+    }

+ 14 - 13
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabMessageContentServiceImpl.java

@@ -13,7 +13,7 @@ import com.zd.common.core.utils.SaveUtil;
 import com.zd.common.core.utils.SecurityUtils;
 import com.zd.laboratory.api.entity.LabMessageContent;
 import com.zd.laboratory.api.entity.SubAddrr;
-import com.zd.laboratory.domain.LabRiskPlan;
+import com.zd.laboratory.domain.LabRiskPlanLevel;
 import com.zd.laboratory.domain.LabSubject;
 import com.zd.laboratory.domain.dto.LabMessageContentDTO;
 import com.zd.laboratory.domain.dto.LabMessageContentListQuery;
@@ -42,6 +42,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+
 import java.util.Collections;
 import java.util.List;
 import java.util.Optional;
@@ -179,7 +180,7 @@ public class LabMessageContentServiceImpl implements ILabMessageContentService {
      */
     @Override
     @Async("labExecutor")
-    public void sendWranMessage(Long subId, LabRiskPlan newRiskPlan, Long groupId) {
+    public void sendWranMessage(Long subId,/* LabRiskPlan newRiskPlan*/LabRiskPlanLevel labRiskPlanLevel, Long groupId) {
         logger.info("*******************sendWranMessage***********************");
         //获取实验室负责人信息
         LabSubject subject = new LabSubject();
@@ -190,13 +191,13 @@ public class LabMessageContentServiceImpl implements ILabMessageContentService {
                 .filter(a -> a.size() > 0)
                 .map(a -> a.get(0))
                 .map(a -> {
-                    sendSubWran(a, newRiskPlan, groupId);
+                    sendSubWran(a, labRiskPlanLevel, groupId);
                     return a;
                 })
                 .orElse(null);
     }
 
-    private void sendSubWran(LabSubjectVO subject, LabRiskPlan newRiskPlan, Long groupId) {
+    private void sendSubWran(LabSubjectVO subject, LabRiskPlanLevel labRiskPlanLevel/*LabRiskPlan newRiskPlan*/, Long groupId) {
         logger.info("$$$$$$$$$$$$$进入sendSubWran$$$$$$$$$$$$$");
         String safeUserId = subject.getSafeUserId();
         if (StringUtils.isNotBlank(safeUserId)) {
@@ -208,7 +209,7 @@ public class LabMessageContentServiceImpl implements ILabMessageContentService {
             deptName = subAddrrs.get(0).getBuildName();
         }
 
-        String format = StrUtil.format(smsFormat, deptName, subject.getName(), StrUtil.isBlank(newRiskPlan.getMessage()) ? newRiskPlan.getName() : newRiskPlan.getMessage());
+        String format = StrUtil.format(smsFormat, deptName, subject.getName(), StrUtil.isBlank(labRiskPlanLevel.getMessage()) ? labRiskPlanLevel.getRiskName() : labRiskPlanLevel.getMessage());
         String phone = null;
         String userids = null;
         try {
@@ -241,25 +242,25 @@ public class LabMessageContentServiceImpl implements ILabMessageContentService {
                 MessageBody messageBody = new MessageBody();
                 messageBody.setData(alarmEntrty);
                 //commonSend.send("alarm/"+newRiskPlan.getId()+"/"+subject.getId(),messageBody, SendMode.DISTINCT);
-                commonSend.send(MqttConstants.TOPIC_ALERT + newRiskPlan.getId() + "/" + subject.getId(), messageBody, SendMode.DISTINCT);
-                logger.info("&&&&" + MqttConstants.TOPIC_ALERT + newRiskPlan.getId() + "/" + subject.getId());
+                commonSend.send(MqttConstants.TOPIC_ALERT + labRiskPlanLevel.getRiskPlanId() + "/" + subject.getId(), messageBody, SendMode.DISTINCT);
+                logger.info("&&&&" + MqttConstants.TOPIC_ALERT + labRiskPlanLevel.getRiskPlanId() + "/" + subject.getId());
                 logger.info("&&&&" + JSON.toJSONString(messageBody));
 //           改用mqtt
 //           ResultData send = remoteAlarmService.send(alarmEntrty);
                 try {
                     if (subject.getAdminId() != null) {
                         //发送预案消息(预案指挥中心) 没什么卵用 lab_warn_push_message
-                        labWarnPushMessageService.insertLabWarnPushMessage(subject.getId(), subject.getAdminId().toString(), groupId, newRiskPlan, WarnUserAttrEnum.ADMIN);
+                        labWarnPushMessageService.insertLabWarnPushMessage(subject.getId(), subject.getAdminId().toString(), groupId, labRiskPlanLevel, WarnUserAttrEnum.ADMIN);
                     }
                     //发送预案消息(预案指挥中心) 没什么卵用 lab_warn_push_message 保持实验室内部人员发送记录  ?安全的要不要保存展示?
-                    labWarnPushMessageService.insertLabWarnPushMessage(subject.getId(), userids, groupId, newRiskPlan, WarnUserAttrEnum.NONE);
+                    labWarnPushMessageService.insertLabWarnPushMessage(subject.getId(), userids, groupId, labRiskPlanLevel, WarnUserAttrEnum.NONE);
                 } catch (Exception e) {
                     logger.error("发送预案消息失败!");
                 }
             }
 
             //发送消息
-            if (StrUtil.isNotBlank(newRiskPlan.getInformation())) {
+            if (StrUtil.isNotBlank(labRiskPlanLevel.getInformation())) {
                 String collect = Stream.of(new String[]{subject.getAdminId() == null ? null : subject.getAdminId().toString(), subject.getSafeUserId()})
                         .filter(a -> StrUtil.isNotBlank(a))
                         .collect(Collectors.joining(","));
@@ -268,7 +269,7 @@ public class LabMessageContentServiceImpl implements ILabMessageContentService {
                     labMessageContentDTO.setUserIds(collect);
                     labMessageContentDTO.setSendMode(2);
                     labMessageContentDTO.setSendRange(3);
-                    labMessageContentDTO.setContent(newRiskPlan.getMessage());
+                    labMessageContentDTO.setContent(labRiskPlanLevel.getMessage());
                     labMessageContentDTO.setUserId(-2L);
                     sendMessageWarn(labMessageContentDTO);
                 }
@@ -276,7 +277,7 @@ public class LabMessageContentServiceImpl implements ILabMessageContentService {
             }
         } else if (phoneMode == 1) {
             //走四医大发送短信服务接口
-            remoteStockService.sendSydSms(newRiskPlan.getMessage(), 5, null, strings);
+            remoteStockService.sendSydSms(labRiskPlanLevel.getMessage(), 5, null, strings);
         }
 
     }
@@ -284,7 +285,7 @@ public class LabMessageContentServiceImpl implements ILabMessageContentService {
     private String getDoingUserId(LabSubjectVO subject) {
         LabSubjectAccessRecordVo labSubjectAccessRecordVo;
         labSubjectAccessRecordVo = new LabSubjectAccessRecordVo();
-        labSubjectAccessRecordVo.setAccessStatus(1l);
+        labSubjectAccessRecordVo.setAccessStatus(1L);
         labSubjectAccessRecordVo.setSubjectId(subject.getId());
         labSubjectAccessRecordVo.setInitFlag(false);
         List<LabSubjectAccessRecordVo> labSubjectAccessRecordVos = subjectAccessRecordService.selectLabSubjectAccessRecordListNoAuth(labSubjectAccessRecordVo);

+ 0 - 95
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabRiskPlanAbnormalDescServiceImpl.java

@@ -1,95 +0,0 @@
-package com.zd.laboratory.service.impl;
-
-import com.zd.common.core.exception.ServiceException;
-import com.zd.common.core.utils.StringUtils;
-import com.zd.laboratory.domain.LabRiskPlanAbnormalDesc;
-import com.zd.laboratory.mapper.LabRiskPlanAbnormalDescMapper;
-import com.zd.laboratory.service.ILabRiskPlanAbnormalDescService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import java.util.Date;
-import java.util.List;
-
-/**
- * <p>类注释说明</p>
- *
- * @author linft
- * @version 1.0
- * @date 12/9/2022
- */
-@Service
-public class LabRiskPlanAbnormalDescServiceImpl implements ILabRiskPlanAbnormalDescService {
-
-    @Autowired
-    private LabRiskPlanAbnormalDescMapper labRiskPlanAbnormalDescMapper;
-
-    @Override
-    public int insert(LabRiskPlanAbnormalDesc labRiskPlanAbnormalDesc) {
-        if (labRiskPlanAbnormalDesc != null) {
-            if (labRiskPlanAbnormalDesc.getGroupId() == null || StringUtils.isEmpty(labRiskPlanAbnormalDesc.getRiskReason())
-                    || labRiskPlanAbnormalDesc.getRiskLevel() == null) {
-                throw new ServiceException("缺少必须的参数");
-            }
-            Date date = new Date();
-            labRiskPlanAbnormalDesc.setStartDate(date);
-            labRiskPlanAbnormalDesc.setCreateTime(date);
-            labRiskPlanAbnormalDesc.setRiskDuration(0l);
-            return labRiskPlanAbnormalDescMapper.insert(labRiskPlanAbnormalDesc);
-        }
-        return 0;
-    }
-
-    @Override
-    public int updateById(LabRiskPlanAbnormalDesc labRiskPlanAbnormalDesc) {
-        if (labRiskPlanAbnormalDesc != null && labRiskPlanAbnormalDesc.getDescId() != null) {
-            LabRiskPlanAbnormalDesc desc = labRiskPlanAbnormalDescMapper.selectById(labRiskPlanAbnormalDesc.getDescId());
-            if (desc != null) {
-                long start = desc.getStartDate().getTime();
-                Date now = new Date();
-                desc.setEndDate(now);
-                long rd = ((now.getTime() - start) / 1000);
-                desc.setRiskDuration(rd);
-                desc.setHandledPerson(labRiskPlanAbnormalDesc.getHandledPerson());
-                desc.setRecordVideo(labRiskPlanAbnormalDesc.getRecordVideo());
-                return labRiskPlanAbnormalDescMapper.updateById(desc);
-            } else {
-                throw new ServiceException("数据不存在!");
-            }
-        }
-        return 0;
-    }
-
-    @Override
-    public int deleteById(Long descId) {
-        return labRiskPlanAbnormalDescMapper.deleteById(descId);
-    }
-
-    @Override
-    public LabRiskPlanAbnormalDesc selectById(Long descId) {
-        return labRiskPlanAbnormalDescMapper.selectById(descId);
-    }
-
-    @Override
-    public List<LabRiskPlanAbnormalDesc> selectByList(LabRiskPlanAbnormalDesc labRiskPlanAbnormalDesc) {
-        return labRiskPlanAbnormalDescMapper.selectByList(labRiskPlanAbnormalDesc);
-    }
-
-    @Override
-    public int addLabRiskPlanAbnormalDesc(long groupId, String riskReason, int riskLevel, String internalPerson) {
-        LabRiskPlanAbnormalDesc desc = new LabRiskPlanAbnormalDesc();
-        desc.setGroupId(groupId);
-        desc.setRiskReason(riskReason);
-        desc.setRiskLevel(riskLevel);
-        desc.setInternalPerson(internalPerson);
-        return insert(desc);
-    }
-
-    @Override
-    public int updateLabRiskPlanAbnormalDesc(long descId, String handledPerson, String recordVideo) {
-        LabRiskPlanAbnormalDesc desc = new LabRiskPlanAbnormalDesc();
-        desc.setDescId(descId);
-        desc.setHandledPerson(handledPerson);
-        desc.setRecordVideo(recordVideo);
-        return updateById(desc);
-    }
-}

+ 25 - 62
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabRiskPlanAbnormalGroupServiceImpl.java

@@ -9,18 +9,14 @@ import com.zd.laboratory.api.entity.SensorFunctionStatus;
 import com.zd.laboratory.api.vo.SubFunction;
 import com.zd.laboratory.config.HardwareFunctionStatusConfig;
 import com.zd.laboratory.domain.LabHardware;
-import com.zd.laboratory.domain.LabRiskPlanAbnormalDesc;
 import com.zd.laboratory.domain.LabRiskPlanAbnormalGroup;
 import com.zd.laboratory.domain.LabRiskPlanAbnormalLog;
 import com.zd.laboratory.domain.vo.LabRiskPlanAbnormalGroupVO;
 import com.zd.laboratory.mapper.LabHardwareMapper;
-import com.zd.laboratory.mapper.LabHardwareStateMapper;
 import com.zd.laboratory.mapper.LabRiskPlanAbnormalGroupMapper;
 import com.zd.laboratory.mapper.LabRiskPlanAbnormalLogMapper;
 import com.zd.laboratory.service.ILabExitLineService;
-import com.zd.laboratory.service.ILabRiskPlanAbnormalDescService;
 import com.zd.laboratory.service.ILabRiskPlanAbnormalGroupService;
-import com.zd.model.entity.SysUser;
 import com.zd.model.enums.HardwareTypeEnum;
 import org.apache.commons.collections4.CollectionUtils;
 import org.slf4j.Logger;
@@ -28,7 +24,10 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
 import java.util.stream.Collectors;
 
 /**
@@ -45,25 +44,19 @@ public class LabRiskPlanAbnormalGroupServiceImpl implements ILabRiskPlanAbnormal
     private LabRiskPlanAbnormalGroupMapper labRiskPlanAbnormalGroupMapper;
 
     @Autowired
-    private HardwareFunctionStatusConfig hardwareFunctionStatusConfig;
+    HardwareFunctionStatusConfig hardwareFunctionStatusConfig;
     @Autowired
     private LabHardwareMapper labHardwareMapper;
     @Autowired
     private LabRiskPlanAbnormalLogMapper labRiskPlanAbnormalLogMapper;
 
     @Autowired
-    private LabHardwareStateMapper hardwareStateMapper;
-
-    @Autowired
     private ILabExitLineService labExitLineService;
 
     @Autowired
     private LabSubjectManagerService labSubjectManagerService;
 
     @Autowired
-    private ILabRiskPlanAbnormalDescService labRiskPlanAbnormalDescService;
-
-    @Autowired
     private RedisService redisService;
 
 
@@ -71,6 +64,7 @@ public class LabRiskPlanAbnormalGroupServiceImpl implements ILabRiskPlanAbnormal
 //    @DataScope(deptAlias = "t")
     public List <LabRiskPlanAbnormalGroupVO> selectLabRiskPlanAbnormalGroupList(LabRiskPlanAbnormalGroup labRiskPlanAbnormalGroup) {
         List <LabRiskPlanAbnormalGroupVO> groupList = labRiskPlanAbnormalGroupMapper.selectLabRiskPlanAbnormalGroupListByDept(labRiskPlanAbnormalGroup);
+
         Optional.ofNullable(groupList).filter(a->a.size()>0).orElseGet(Collections::emptyList).stream().forEach(a->{
             LabRiskPlanAbnormalLog labRiskPlanAbnormalLog = new LabRiskPlanAbnormalLog();
             labRiskPlanAbnormalLog.setGroupId(a.getId());
@@ -89,6 +83,7 @@ public class LabRiskPlanAbnormalGroupServiceImpl implements ILabRiskPlanAbnormal
                 }
             });
             a.setSensorStr(sensorStr.toString());
+
             //根据实验室id和设备类型查询硬件列表
             LabHardware labHardware = new LabHardware();
             labHardware.setSubjectId(a.getSubjectId());
@@ -103,10 +98,12 @@ public class LabRiskPlanAbnormalGroupServiceImpl implements ILabRiskPlanAbnormal
             }catch (Exception e){
                 a.setWhetherRoute(false);
             }
+
         });
         return groupList;
     }
 
+
     /**
      * 查询实验室当前预警测点功能
      *
@@ -121,9 +118,23 @@ public class LabRiskPlanAbnormalGroupServiceImpl implements ILabRiskPlanAbnormal
             return new ArrayList<>();
         }
         logger.info("一体机预案异常类型:" + JSONUtil.toJsonStr(strings) + ", 实验室ID------" + subId);
+
+//        final Map<String, SensorFunctionStatus> mapFunNum = hardwareFunctionStatusConfig.getMapFunNum();
+
+        /*return Optional.ofNullable(strings)
+                .filter(a -> a.size() > 0)
+                .orElseGet(Collections::emptyList)
+                .stream()
+                .distinct()
+                .map(a -> mapFunNum.get(a))
+                .collect(Collectors.toList());*/
+
         List<SensorFunctionStatus> list = labSubjectManagerService.querySenseNewFunctionBySubId(subId);
         logger.info("一体机预案实验室数据:" + JSONUtil.toJsonStr(list));
+
         list = list.stream().filter( s -> strings.stream().filter(f -> f.equals(s.getFunNum())).findAny().isPresent()).collect(Collectors.toList());
+
+
         if(strings.stream().filter(m->m.equals("huoyan")).findAny().isPresent()){
 
             SubFunction subFunction = redisService.getCacheObject("subjectByHuoyan"+subId);
@@ -132,58 +143,10 @@ public class LabRiskPlanAbnormalGroupServiceImpl implements ILabRiskPlanAbnormal
                 list.addAll(subFunction.getFunctionStatuses());
             }
         }
-        logger.info("一体机预案过滤结果:" + JSONUtil.toJsonStr(list));
-        return list;
-    }
-
-    @Override
-    public List<LabRiskPlanAbnormalGroup> queryRiskExeRecordList(LabRiskPlanAbnormalGroup group) {
-        return labRiskPlanAbnormalGroupMapper.queryRiskExeRecordList(group);
-    }
 
-    @Override
-    public boolean addRiskExeRecord(String riskPlanName, long subjectId, String subjectName, Integer riskAttribute, String riskReason, int riskLevel) {
-        LabRiskPlanAbnormalGroup group = new LabRiskPlanAbnormalGroup();
-        group.setGroupName(riskPlanName);
-        group.setSubjectId(subjectId);
-        group.setSubjectName(subjectName);
-        group.setRiskAttribute(riskAttribute);
-        group.setStatus(1L);
-        Date now = new Date();
-        group.setCreateTime(now);
-        if(labRiskPlanAbnormalGroupMapper.insertLabRiskPlanAbnormalGroup(group) > 0) {
-            //获取实验室内人员
-            Map<String, Object> params = new HashMap<>();
-            params.put("subId",subjectId);
-            List<SysUser> users = hardwareStateMapper.querySubOnlineUserByOnepc(params);
-            String internalPerson = null;
-            if (users != null && users.size() > 0) {
-                internalPerson = users.stream().map(SysUser::getUserName).collect(Collectors.joining(","));
-            }
-            if(labRiskPlanAbnormalDescService.addLabRiskPlanAbnormalDesc(group.getId(), riskReason, riskLevel, internalPerson) > 0){
-                return true;
-            }
-        }
-        return false;
-    }
+        logger.info("一体机预案过滤结果:" + JSONUtil.toJsonStr(list));
 
-    @Override
-    public boolean doneRiskExeRecord(long groupId, String handledPerson, String recordVideo) {
-        LabRiskPlanAbnormalGroup group = new LabRiskPlanAbnormalGroup();
-        group.setId(groupId);
-        group.setStatus(0l);
-        group.setUpdateTime(new Date());
-        int result = labRiskPlanAbnormalGroupMapper.updateLabRiskPlanAbnormalGroup(group);
-        if (result > 0) {
-            LabRiskPlanAbnormalDesc desc = new LabRiskPlanAbnormalDesc();
-            desc.setGroupId(groupId);
-            List<LabRiskPlanAbnormalDesc> list = labRiskPlanAbnormalDescService.selectByList(desc);
-            if (list != null && list.size() >0
-                    && labRiskPlanAbnormalDescService.updateLabRiskPlanAbnormalDesc(list.get(0).getDescId(),handledPerson, recordVideo) > 0) {
-                return true;
-            }
+        return list;
 
-        }
-        return false;
     }
 }

+ 17 - 1
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabRiskPlanHardwareRelationServiceImpl.java

@@ -1,5 +1,6 @@
 package com.zd.laboratory.service.impl;
 
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zd.common.core.utils.DateUtils;
 import com.zd.laboratory.domain.LabRiskPlanHardwareRelation;
 import com.zd.laboratory.mapper.LabRiskPlanHardwareRelationMapper;
@@ -16,7 +17,7 @@ import java.util.List;
  * @date 2021-09-03
  */
 @Service
-public class LabRiskPlanHardwareRelationServiceImpl implements ILabRiskPlanHardwareRelationService {
+public class LabRiskPlanHardwareRelationServiceImpl extends ServiceImpl<LabRiskPlanHardwareRelationMapper, LabRiskPlanHardwareRelation> implements ILabRiskPlanHardwareRelationService {
     @Autowired
     private LabRiskPlanHardwareRelationMapper labRiskPlanHardwareRelationMapper;
 
@@ -86,4 +87,19 @@ public class LabRiskPlanHardwareRelationServiceImpl implements ILabRiskPlanHardw
     public int deleteLabRiskPlanHardwareRelationById(Long id) {
         return labRiskPlanHardwareRelationMapper.deleteLabRiskPlanHardwareRelationById(id);
     }
+
+    /**
+     * 根据分级id删除关联硬件
+     * @Param [riskPlanLevelId]
+     * @Return int
+     **/
+    @Override
+    public int deleteByLevelId(Long riskPlanLevelId) {
+        return baseMapper.deleteByLevelId(riskPlanLevelId);
+    }
+
+    @Override
+    public List<LabRiskPlanHardwareRelation> selectHardwareRelationListByLevelId(Long riskPlanLevelId) {
+        return baseMapper.selectHardwareRelationListByLevelId(riskPlanLevelId);
+    }
 }

+ 158 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabRiskPlanLevelServiceImpl.java

@@ -0,0 +1,158 @@
+package com.zd.laboratory.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zd.laboratory.domain.LabRiskPlan;
+import com.zd.laboratory.domain.LabRiskPlanHardwareRelation;
+import com.zd.laboratory.domain.LabRiskPlanLevel;
+import com.zd.laboratory.domain.LabRiskPlanSensorRelation;
+import com.zd.laboratory.mapper.LabRiskPlanLevelMapper;
+import com.zd.laboratory.service.ILabRiskPlanHardwareRelationService;
+import com.zd.laboratory.service.ILabRiskPlanSensorRelationService;
+import com.zd.laboratory.service.ILabRiskPlanService;
+import com.zd.laboratory.service.LabRiskPlanLevelService;
+import com.zd.model.domain.ResultData;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * @Description TODO
+ * @Author hzw
+ * @Date 2022/11/29 16:13
+ * @Version 2.0
+ */
+@Slf4j
+@Service
+public class LabRiskPlanLevelServiceImpl extends ServiceImpl<LabRiskPlanLevelMapper, LabRiskPlanLevel> implements LabRiskPlanLevelService {
+
+    @Autowired
+    private ILabRiskPlanSensorRelationService labRiskPlanSensorRelationService;
+    @Autowired
+    private ILabRiskPlanHardwareRelationService labRiskPlanHardwareRelationService;
+
+    @Autowired
+    private ILabRiskPlanService labRiskPlanService;
+
+
+    @Override
+    @Transactional
+    public ResultData insertLabRiskPlanLevel(LabRiskPlanLevel labRiskPlanLevel) {
+//        long distinctNum = labRiskPlanLevels.stream().map(LabRiskPlanLevel::getRiskPlanLevel).distinct().count();
+//        if (distinctNum < labRiskPlanLevels.size()) {
+//            return ResultData.fail("预案分级不能重复 !");
+//        }
+//        LabRiskPlanLevel labRiskPlanLevel1 = labRiskPlanLevels.get(0);
+//        baseMapper.delete(new LambdaQueryWrapper<LabRiskPlanLevel>().eq(LabRiskPlanLevel::getRiskPlanId,labRiskPlanLevel1.getRiskPlanId()));
+//        baseMapper.batchInsert(labRiskPlanLevels);
+
+        if (labRiskPlanLevel.getRiskPlanId() == null) {
+            return ResultData.fail("预案id不能为空!");
+        }
+        Long count = baseMapper.selectCount(new LambdaQueryWrapper<LabRiskPlanLevel>().eq(LabRiskPlanLevel::getRiskPlanLevel, labRiskPlanLevel.getRiskPlanLevel()).eq(LabRiskPlanLevel::getRiskPlanId, labRiskPlanLevel.getRiskPlanId()));
+        if (count > 0) {
+            return ResultData.fail("预案级别不能重复!");
+        }
+        baseMapper.insert(labRiskPlanLevel);
+        labRiskPlanService.update(new LambdaUpdateWrapper<LabRiskPlan>().eq(LabRiskPlan::getId,labRiskPlanLevel.getRiskPlanId()).set(LabRiskPlan::getStartCondition,labRiskPlanLevel.getStartCondition()));
+        List<LabRiskPlanSensorRelation> riskPlanSensorList = labRiskPlanLevel.getRiskPlanSensorList();
+        if (riskPlanSensorList.isEmpty()) {
+            return ResultData.fail("传感器不能为空!");
+        }
+        for (LabRiskPlanSensorRelation labRiskPlanSensorRelation : riskPlanSensorList) {
+            labRiskPlanSensorRelation.setRiskPlanLevelId(labRiskPlanLevel.getId());
+            labRiskPlanSensorRelation.setRiskPlanId(labRiskPlanLevel.getRiskPlanId());
+        }
+        labRiskPlanSensorRelationService.saveBatch(riskPlanSensorList);
+
+        List<LabRiskPlanHardwareRelation> riskPlanHardwareList = labRiskPlanLevel.getRiskPlanHardwareList();
+        if (!riskPlanHardwareList.isEmpty()) {
+            for (LabRiskPlanHardwareRelation labRiskPlanHardwareRelation : riskPlanHardwareList) {
+                labRiskPlanHardwareRelation.setRiskPlanLevelId(labRiskPlanLevel.getId());
+                labRiskPlanHardwareRelation.setRiskPlanId(labRiskPlanLevel.getRiskPlanId());
+            }
+            labRiskPlanHardwareRelationService.saveBatch(riskPlanHardwareList);
+        }
+        return ResultData.success(labRiskPlanLevel.getId());
+    }
+
+    @Override
+    @Transactional
+    public ResultData updateLabRiskPlanLevel(LabRiskPlanLevel labRiskPlanLevel) {
+        if (labRiskPlanLevel.getRiskPlanId() == null || labRiskPlanLevel.getId() == null) {
+            return ResultData.fail("预案id或预案分级id为空!");
+        }
+        Long count = baseMapper.selectCount(new LambdaQueryWrapper<LabRiskPlanLevel>().eq(LabRiskPlanLevel::getRiskPlanId,labRiskPlanLevel.getRiskPlanId()).eq(LabRiskPlanLevel::getRiskPlanLevel, labRiskPlanLevel.getRiskPlanLevel()).ne(LabRiskPlanLevel::getId,labRiskPlanLevel.getId()));
+        if (count>0){
+            return ResultData.fail("预案下该预案分级已存在!");
+        }
+        baseMapper.updateById(labRiskPlanLevel);
+        labRiskPlanService.update(new LambdaUpdateWrapper<LabRiskPlan>().eq(LabRiskPlan::getId,labRiskPlanLevel.getRiskPlanId()).set(LabRiskPlan::getStartCondition,labRiskPlanLevel.getStartCondition()));
+        List<LabRiskPlanSensorRelation> riskPlanSensorList = labRiskPlanLevel.getRiskPlanSensorList();
+        if (riskPlanSensorList.isEmpty()) {
+            return ResultData.fail("传感器不能为空!");
+        }
+        for (LabRiskPlanSensorRelation labRiskPlanSensorRelation : riskPlanSensorList) {
+            labRiskPlanSensorRelation.setRiskPlanLevelId(labRiskPlanLevel.getId());
+            labRiskPlanSensorRelation.setRiskPlanId(labRiskPlanLevel.getRiskPlanId());
+        }
+        labRiskPlanSensorRelationService.deleteByLevelId(labRiskPlanLevel.getId());
+        labRiskPlanSensorRelationService.saveBatch(riskPlanSensorList);
+
+        List<LabRiskPlanHardwareRelation> riskPlanHardwareList = labRiskPlanLevel.getRiskPlanHardwareList();
+        if (!riskPlanHardwareList.isEmpty()) {
+            for (LabRiskPlanHardwareRelation labRiskPlanHardwareRelation : riskPlanHardwareList) {
+                labRiskPlanHardwareRelation.setRiskPlanLevelId(labRiskPlanLevel.getId());
+                labRiskPlanHardwareRelation.setRiskPlanId(labRiskPlanLevel.getRiskPlanId());
+            }
+            labRiskPlanHardwareRelationService.deleteByLevelId(labRiskPlanLevel.getId());
+            labRiskPlanHardwareRelationService.saveBatch(riskPlanHardwareList);
+        }
+        return ResultData.success();
+    }
+
+    @Override
+    @Transactional
+    public int deleteById(LabRiskPlanLevel labRiskPlanLevel) {
+        labRiskPlanSensorRelationService.deleteByLevelId(labRiskPlanLevel.getId());
+        labRiskPlanHardwareRelationService.deleteByLevelId(labRiskPlanLevel.getId());
+        labRiskPlanService.update(new LambdaUpdateWrapper<LabRiskPlan>().eq(LabRiskPlan::getId,labRiskPlanLevel.getRiskPlanId()).set(LabRiskPlan::getStartCondition,labRiskPlanLevel.getStartCondition()));
+        return baseMapper.deleteById(labRiskPlanLevel.getId());
+    }
+
+    @Override
+    @Transactional
+    public int deleteByRiskPlanId(String riskPlanIds) {
+        labRiskPlanSensorRelationService.remove(new LambdaQueryWrapper<LabRiskPlanSensorRelation>().in(LabRiskPlanSensorRelation::getRiskPlanId, riskPlanIds));
+        labRiskPlanHardwareRelationService.remove(new LambdaQueryWrapper<LabRiskPlanHardwareRelation>().in(LabRiskPlanHardwareRelation::getRiskPlanId, riskPlanIds));
+        return baseMapper.delete(new LambdaQueryWrapper<LabRiskPlanLevel>().in(LabRiskPlanLevel::getRiskPlanId, riskPlanIds));
+    }
+
+    @Override
+    public List<LabRiskPlanLevel> queryRiskPlanLevelList(Long id) {
+        List<LabRiskPlanLevel> labRiskPlanLevels = baseMapper.selectList(new LambdaQueryWrapper<LabRiskPlanLevel>().eq(LabRiskPlanLevel::getRiskPlanId, id).orderByAsc(LabRiskPlanLevel::getRiskPlanLevel));
+        for (LabRiskPlanLevel labRiskPlanLevel : labRiskPlanLevels) {
+//            List<LabRiskPlanSensorRelation> labRiskPlanSensorRelations = labRiskPlanSensorRelationService.list(new LambdaQueryWrapper<LabRiskPlanSensorRelation>().eq(LabRiskPlanSensorRelation::getRiskPlanLevelId, labRiskPlanLevel.getId()));
+            List<LabRiskPlanSensorRelation> labRiskPlanSensorRelations = labRiskPlanSensorRelationService.selectSensorRelationListByLevelId(labRiskPlanLevel.getId());
+            labRiskPlanLevel.setRiskPlanSensorList(labRiskPlanSensorRelations);
+//            List<LabRiskPlanHardwareRelation> labRiskPlanHardwareRelations = labRiskPlanHardwareRelationService.list(new LambdaQueryWrapper<LabRiskPlanHardwareRelation>().eq(LabRiskPlanHardwareRelation::getRiskPlanLevelId, labRiskPlanLevel.getId()));
+            List<LabRiskPlanHardwareRelation> labRiskPlanHardwareRelations = labRiskPlanHardwareRelationService.selectHardwareRelationListByLevelId(labRiskPlanLevel.getId());
+            labRiskPlanLevel.setRiskPlanHardwareList(labRiskPlanHardwareRelations);
+        }
+        return labRiskPlanLevels;
+    }
+
+    @Override
+    public LabRiskPlanLevel queryRiskPlanLevelByLevelIds(String levelIds) {
+        LabRiskPlanLevel labRiskPlanLevel = baseMapper.queryRiskPlanLevelByLevelIds(levelIds);
+        List<LabRiskPlanSensorRelation> labRiskPlanSensorRelations = labRiskPlanSensorRelationService.selectSensorRelationListByLevelId(labRiskPlanLevel.getId());
+        labRiskPlanLevel.setRiskPlanSensorList(labRiskPlanSensorRelations);
+        List<LabRiskPlanHardwareRelation> labRiskPlanHardwareRelations = labRiskPlanHardwareRelationService.selectHardwareRelationListByLevelId(labRiskPlanLevel.getId());
+        labRiskPlanLevel.setRiskPlanHardwareList(labRiskPlanHardwareRelations);
+        return labRiskPlanLevel;
+    }
+}

+ 17 - 1
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabRiskPlanSensorRelationServiceImpl.java

@@ -1,5 +1,6 @@
 package com.zd.laboratory.service.impl;
 
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zd.common.core.utils.DateUtils;
 import com.zd.laboratory.domain.LabRiskPlanSensorRelation;
 import com.zd.laboratory.mapper.LabRiskPlanSensorRelationMapper;
@@ -16,7 +17,7 @@ import java.util.List;
  * @date 2021-09-03
  */
 @Service
-public class LabRiskPlanSensorRelationServiceImpl implements ILabRiskPlanSensorRelationService {
+public class LabRiskPlanSensorRelationServiceImpl extends ServiceImpl<LabRiskPlanSensorRelationMapper, LabRiskPlanSensorRelation> implements ILabRiskPlanSensorRelationService {
     @Autowired
     private LabRiskPlanSensorRelationMapper labRiskPlanSensorRelationMapper;
 
@@ -86,4 +87,19 @@ public class LabRiskPlanSensorRelationServiceImpl implements ILabRiskPlanSensorR
     public int deleteLabRiskPlanSensorRelationById(Long id) {
         return labRiskPlanSensorRelationMapper.deleteLabRiskPlanSensorRelationById(id);
     }
+
+    /**
+     * 根据分级id删除传感器
+     * @Param [riskPlanLevelId]
+     * @Return int
+     **/
+    @Override
+    public int deleteByLevelId(Long riskPlanLevelId) {
+        return labRiskPlanSensorRelationMapper.deleteByLevelId(riskPlanLevelId);
+    }
+
+    @Override
+    public List<LabRiskPlanSensorRelation> selectSensorRelationListByLevelId(Long id) {
+        return labRiskPlanSensorRelationMapper.selectSensorRelationListByLevelId(id);
+    }
 }

Plik diff jest za duży
+ 803 - 522
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabRiskPlanServiceImpl.java


+ 33 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabSensorHazardRelationServiceImpl.java

@@ -0,0 +1,33 @@
+package com.zd.laboratory.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zd.laboratory.domain.LabSensorHazardRelation;
+import com.zd.laboratory.mapper.LabSensorHazardRelationMapper;
+import com.zd.laboratory.service.LabSensorHazardRelationService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+/**
+  * @Description TODO
+  * @Author hzw
+  * @Date 2022/12/1 16:59
+  * @Version 2.0
+  */ 
+@Service
+public class LabSensorHazardRelationServiceImpl extends ServiceImpl<LabSensorHazardRelationMapper, LabSensorHazardRelation> implements LabSensorHazardRelationService{
+
+    @Override
+    public int updateBatch(List<LabSensorHazardRelation> list) {
+        return baseMapper.updateBatch(list);
+    }
+    @Override
+    public int batchInsert(List<LabSensorHazardRelation> list) {
+        return baseMapper.batchInsert(list);
+    }
+
+    @Override
+    public List<LabSensorHazardRelation> getSensorHazardList(Long riskPlanId, Long id) {
+        return baseMapper.getSensorHazardList(riskPlanId,id);
+    }
+
+}

+ 10 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabSensorServiceImpl.java

@@ -313,4 +313,14 @@ public class LabSensorServiceImpl implements ILabSensorService {
     public List<SensorFunctionStatus> getFunList() {
         return hardwareFunctionStatusConfig.getSensorFunctionStatuses();
     }
+
+    @Override
+    public List<LabSensor> getSensorListBySubId(Long id) {
+        return labSensorMapper.getSensorListBySubId(id);
+    }
+
+    @Override
+    public List<Long> getSensorTypesBySubId(Long id) {
+        return labSensorMapper.getSensorTypesBySubId(id);
+    }
 }

+ 5 - 5
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabWarnPushMessageServiceImpl.java

@@ -1,7 +1,7 @@
 package com.zd.laboratory.service.impl;
 
 import com.zd.common.core.utils.DateUtils;
-import com.zd.laboratory.domain.LabRiskPlan;
+import com.zd.laboratory.domain.LabRiskPlanLevel;
 import com.zd.laboratory.domain.LabWarnPushMessage;
 import com.zd.laboratory.domain.vo.LabWarnPushMessageVO;
 import com.zd.laboratory.mapper.LabWarnPushMessageMapper;
@@ -60,11 +60,11 @@ public class LabWarnPushMessageServiceImpl implements ILabWarnPushMessageService
      *
      * @param userids     实验室内部用户
      * @param groupId
-     * @param newRiskPlan
+     * @param labRiskPlanLevel
      * @return 结果
      */
     @Override
-    public void insertLabWarnPushMessage(Long subId, String userids, Long groupId, LabRiskPlan newRiskPlan, WarnUserAttrEnum warnUserAttrEnum) {
+    public void insertLabWarnPushMessage(Long subId, String userids, Long groupId, LabRiskPlanLevel labRiskPlanLevel,/*LabRiskPlan newRiskPlan*/ WarnUserAttrEnum warnUserAttrEnum) {
         String[] split = userids.split(",");
 
         Stream.of(split).forEach(a->{
@@ -72,9 +72,9 @@ public class LabWarnPushMessageServiceImpl implements ILabWarnPushMessageService
             try {
                 LabWarnPushMessage labWarnPushMessage = new LabWarnPushMessage();
                 labWarnPushMessage.setRiskGroup(groupId);
-                labWarnPushMessage.setContext(newRiskPlan.getTopName()+""+newRiskPlan.getMessage());
+                labWarnPushMessage.setContext(labRiskPlanLevel.getTopName()+""+labRiskPlanLevel.getMessage());
                 labWarnPushMessage.setPushType(WarnMessageTypeEnum.SMS);
-                labWarnPushMessage.setWarnId(newRiskPlan.getId());
+                labWarnPushMessage.setWarnId(labRiskPlanLevel.getRiskPlanId());
                 labWarnPushMessage.setSubId(subId);
                 labWarnPushMessage.setCreateTime(new Date());
                 labWarnPushMessage.setUserAttributes(warnUserAttrEnum);

+ 4 - 0
zd-modules/zd-modules-laboratory/src/main/resources/bootstrap.yml

@@ -15,6 +15,10 @@ mybatis:
     log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
     # Mybatis开启驼峰映射
     mapUnderscoreToCamelCase: true
+mybatis-plus:
+  type-handlers-package: com.zd.model.enums
+  configuration:
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #开启sql日志
 
 ##日志
 logging:

+ 4 - 0
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabBuildFloorLayoutMapper.xml

@@ -58,6 +58,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where id = #{id}
     </select>
 
+    <select id="selectBuildInfoBySubId" resultType="com.zd.laboratory.domain.vo.LabBuildFloorLayoutVo">
+        <include refid="selectLabBuildFloorLayoutListVo"/>
+        where subId = #{subjectId}
+    </select>
 
     <insert id="insertLabBuildFloorLayout" parameterType="com.zd.laboratory.domain.LabBuildFloorLayout" useGeneratedKeys="true" keyProperty="id">
         insert into lab_build_floor_layout

+ 0 - 26
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabRiskPlanAbnormalDescMapper.xml

@@ -1,26 +0,0 @@
-<?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.zd.alg.mapper.LabRiskPlanAbnormalDescMapper">
-
-    <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.zd.alg.entity.LabRiskPlanAbnormalDesc">
-        <id column="desc_id" property="descId" />
-        <result column="group_id" property="groupId" />
-        <result column="risk_reason" property="riskReason" />
-        <result column="risk_level" property="riskLevel" />
-        <result column="start_date" property="startDate" />
-        <result column="end_date" property="endDate" />
-        <result column="risk_duration" property="riskDuration" />
-        <result column="record_video" property="recordVideo" />
-        <result column="create_time" property="createTime" />
-        <result column="create_by" property="createBy" />
-        <result column="modify_time" property="modifyTime" />
-        <result column="modify_by" property="modifyBy" />
-    </resultMap>
-
-    <!-- 通用查询结果列 -->
-    <sql id="Base_Column_List">
-        desc_id, group_id, risk_reason, risk_level, start_date, end_date, risk_duration, record_video, create_time, create_by, modify_time, modify_by
-    </sql>
-
-</mapper>

+ 9 - 1
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabRiskPlanHardwareRelationMapper.xml

@@ -7,6 +7,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <resultMap type="com.zd.laboratory.domain.LabRiskPlanHardwareRelation" id="LabRiskPlanHardwareRelationResult">
         <result property="id"    column="id"    />
         <result property="riskPlanId"    column="risk_plan_id"    />
+        <result property="riskPlanLevelId"    column="risk_plan_level_id"    />
         <result property="hardwareId"    column="hardware_id"    />
         <result property="operate"    column="operate"    />
         <result property="createTime"    column="create_time"    />
@@ -15,7 +16,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectLabRiskPlanHardwareRelationVo">
-        select id, risk_plan_id, hardware_id, operate, create_time,hardware_type,over_act from lab_risk_plan_hardware_relation
+        select id, risk_plan_id, risk_plan_level_id, hardware_id, operate, create_time,hardware_type,over_act from lab_risk_plan_hardware_relation
     </sql>
 
     <select id="selectLabRiskPlanHardwareRelationList" parameterType="com.zd.laboratory.domain.LabRiskPlanHardwareRelation" resultMap="LabRiskPlanHardwareRelationResult">
@@ -89,4 +90,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <delete id="deleteByPlanId">
         delete from lab_risk_plan_hardware_relation where risk_plan_id = #{riskPlanId}
     </delete>
+    <delete id="deleteByLevelId">
+        delete from lab_risk_plan_hardware_relation where risk_plan_level_id = #{riskPlanLevelId}
+    </delete>
+    <select id="selectHardwareRelationListByLevelId" resultMap="LabRiskPlanHardwareRelationResult">
+        <include refid="selectLabRiskPlanHardwareRelationVo"/>
+        where risk_plan_level_id = #{riskPlanLevelId}
+    </select>
 </mapper>

+ 45 - 0
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabRiskPlanLevelMapper.xml

@@ -0,0 +1,45 @@
+<?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.zd.laboratory.mapper.LabRiskPlanLevelMapper">
+  <resultMap id="BaseResultMap" type="com.zd.laboratory.domain.LabRiskPlanLevel">
+    <!--@mbg.generated-->
+    <!--@Table lab_risk_plan_level-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="risk_plan_id" jdbcType="BIGINT" property="riskPlanId" />
+    <result column="risk_plan_level" jdbcType="TINYINT" property="riskPlanLevel" />
+    <result column="if_exit" jdbcType="TINYINT" property="ifExit" />
+    <result column="dept_id" jdbcType="BIGINT" property="deptId" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+    <result column="dept_name" jdbcType="VARCHAR" property="deptName" />
+    <result column="user_id" jdbcType="BIGINT" property="userId" />
+    <result column="create_by" jdbcType="VARCHAR" property="createBy" />
+    <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
+    <result column="update_by" jdbcType="VARCHAR" property="updateBy" />
+    <result column="remark" jdbcType="VARCHAR" property="remark" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, risk_plan_id, risk_plan_level, if_exit, dept_id, create_time, dept_name, user_id,
+    create_by, update_time, update_by, remark
+  </sql>
+  <insert id="batchInsert" keyColumn="id" keyProperty="id" parameterType="map" useGeneratedKeys="true">
+    <!--@mbg.generated-->
+    insert into lab_risk_plan_level
+    (risk_plan_id, risk_plan_level, if_exit, dept_id, create_time, dept_name, user_id,
+      create_by, update_time, update_by, remark)
+    values
+    <foreach collection="list" item="item" separator=",">
+      (#{item.riskPlanId,jdbcType=BIGINT}, #{item.riskPlanLevel,jdbcType=TINYINT}, #{item.ifExit,jdbcType=TINYINT},
+        #{item.deptId,jdbcType=BIGINT}, #{item.createTime,jdbcType=TIMESTAMP}, #{item.deptName,jdbcType=VARCHAR}, 
+        #{item.userId,jdbcType=BIGINT}, #{item.createBy,jdbcType=VARCHAR}, #{item.updateTime,jdbcType=TIMESTAMP}, 
+        #{item.updateBy,jdbcType=VARCHAR}, #{item.remark,jdbcType=VARCHAR})
+    </foreach>
+  </insert>
+  <select id="queryRiskPlanLevelByLevelIds" resultType="com.zd.laboratory.domain.LabRiskPlanLevel">
+    SELECT lrpl.*,lrp.name riskName
+    FROM lab_risk_plan_level lrpl left join lab_risk_plan lrp on lrpl.risk_plan_id = lrp.id
+    where lrpl.id in (#{levelIds})
+    ORDER BY lrpl.risk_plan_level DESC
+    LIMIT 1
+  </select>
+</mapper>

+ 393 - 127
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabRiskPlanMapper.xml

@@ -3,7 +3,6 @@
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.zd.laboratory.mapper.LabRiskPlanMapper">
-
     <resultMap type="com.zd.laboratory.domain.LabRiskPlan" id="LabRiskPlanResult">
         <result property="id" column="id"/>
         <result property="name" column="name"/>
@@ -17,6 +16,7 @@
         <result property="updateTime" column="update_time"/>
         <result property="updateBy" column="update_by"/>
         <result property="remark" column="remark"/>
+        <result property="startCondition" column="start_condition"/>
         <result property="message" column="message"/>
         <result property="voicebroadcast" column="voicebroadcast"/>
         <result property="information" column="information"/>
@@ -37,14 +37,17 @@
         <result property="updateTime" column="update_time"/>
         <result property="updateBy" column="update_by"/>
         <result property="remark" column="remark"/>
+        <result property="startCondition" column="start_condition"/>
         <result property="message" column="message"/>
         <result property="voicebroadcast" column="voicebroadcast"/>
         <result property="information" column="information"/>
         <result property="level" column="level"/>
         <result property="evacuation" column="evacuation"/>
-        <collection property="riskPlanHardwareList" column="id" ofType="com.zd.laboratory.domain.LabRiskPlanHardwareRelation"
+        <collection property="riskPlanHardwareList" column="id"
+                    ofType="com.zd.laboratory.domain.LabRiskPlanHardwareRelation"
                     select="com.zd.laboratory.mapper.LabRiskPlanHardwareRelationMapper.selectLabRiskPlanHardwareRelationByRiskPlanIdId"/>
-        <collection property="riskPlanSensorList" column="id" ofType="com.zd.laboratory.domain.LabRiskPlanSensorRelation"
+        <collection property="riskPlanSensorList" column="id"
+                    ofType="com.zd.laboratory.domain.LabRiskPlanSensorRelation"
                     select="com.zd.laboratory.mapper.LabRiskPlanSensorRelationMapper.selectLabRiskPlanSensorRelationByRiskPlanIdId"/>
         <collection property="labRiskPlanjoinsubList" column="id" ofType="com.zd.laboratory.domain.LabRiskPlanjoinsub"
                     select="com.zd.laboratory.mapper.LabRiskPlanjoinsubMapper.selectLabRiskPlanjoinsubByPlanId"/>
@@ -63,6 +66,7 @@
                update_time,
                update_by,
                remark,
+               start_condition,
                message,
                voicebroadcast,
                information,
@@ -75,35 +79,74 @@
             resultMap="LabRiskPlanResult">
         <include refid="selectLabRiskPlanVo"/>
         <where>
-            <if test="name != null  and name != ''">and name like concat('%', #{name}, '%')</if>
-            <if test="hazardId != null ">and hazard_id = #{hazardId}</if>
-            <if test="containerId != null ">and container_id = #{containerId}</if>
-            <if test="deptId != null ">and dept_id = #{deptId}</if>
-            <if test="deptName != null  and deptName != ''">and dept_name like concat('%', #{deptName}, '%')</if>
-            <if test="userId != null ">and user_id = #{userId}</if>
-            <if test="message != null  and message != ''">and message = #{message}</if>
-            <if test="voicebroadcast != null  and voicebroadcast != ''">and voicebroadcast = #{voicebroadcast}</if>
-            <if test="information != null  and information != ''">and information = #{information}</if>
-            <if test="level != null  and level != ''">and level = #{level}</if>
+            <if test="name != null  and name != ''">
+                and name like concat('%', #{name}, '%')
+            </if>
+            <if test="hazardId != null">
+                and hazard_id = #{hazardId}
+            </if>
+            <if test="containerId != null">
+                and container_id = #{containerId}
+            </if>
+            <if test="deptId != null">
+                and dept_id = #{deptId}
+            </if>
+            <if test="deptName != null  and deptName != ''">
+                and dept_name like concat('%', #{deptName}, '%')
+            </if>
+            <if test="userId != null">
+                and user_id = #{userId}
+            </if>
+            <if test="message != null  and message != ''">
+                and message = #{message}
+            </if>
+            <if test="startCondition != null  and startCondition != ''">
+                and start_condition = #{message}
+            </if>
+            <if test="voicebroadcast != null  and voicebroadcast != ''">
+                and voicebroadcast = #{voicebroadcast}
+            </if>
+            <if test="information != null  and information != ''">
+                and information = #{information}
+            </if>
+            <if test="level != null  and level != ''">
+                and level = #{level}
+            </if>
         </where>
     </select>
 
-    <select id="selectLabRiskPlanById"  resultMap="LabRiskPlanAndRelationResult">
+    <select id="selectLabRiskPlanById" resultMap="LabRiskPlanAndRelationResult">
         <include refid="selectLabRiskPlanVo"/>
         where id = #{id}
     </select>
 
-    <select id="selectLabRiskPlanStatisticList" resultType="com.zd.laboratory.domain.dto.LabRiskPlanDTO" parameterType="com.zd.laboratory.domain.dto.LabRiskPlanDTO">
-        select rp.id, rp.name, rp.remark, case when rp.hazard_id is not null then 1 when rp.container_id is not null then 2 else 0 end as type,
-        floor((select (select count(1) from lab_risk_plan_abnormal_log where risk_plan_id = rp.id and risk_status = 1)/(select count(1) from lab_risk_plan_abnormal_log where risk_status = 1) * 100)) as startUpScale,
-        floor((select (select count(1) from lab_hazard_subject_relation where hazard_id = rp.hazard_id)/(select count(DISTINCT subject_id) from lab_hazard_subject_relation) * 100)) as labDisScale,
-        (SELECT GROUP_CONCAT(sr.fun_num) FROM lab_risk_plan_sensor_relation sr WHERE rp.id = sr.risk_plan_id) fun_num,
-        (SELECT GROUP_CONCAT('(',sr.min_monitor,'-',sr.max_monitor,')') FROM lab_risk_plan_sensor_relation sr WHERE rp.id = sr.risk_plan_id) fun_monitor,
-        rp.create_by,
-        rp.create_time,
-        rp.user_id,
-        rp.evacuation
-        from lab_risk_plan rp  INNER JOIN sys_user ur ON rp.user_id = ur.user_id
+    <select id="selectLabRiskPlanStatisticList" resultType="com.zd.laboratory.domain.dto.LabRiskPlanDTO"
+            parameterType="com.zd.laboratory.domain.dto.LabRiskPlanDTO">
+        select rp.id,
+               rp.name,
+               rp.remark,
+               case when rp.hazard_id is not null then 1 when rp.container_id is not null then 2 else 0 end as type,
+               floor((select (select count(1)
+                              from lab_risk_plan_abnormal_log
+                              where risk_plan_id = rp.id
+                                and risk_status = 1) /
+                             (select count(1) from lab_risk_plan_abnormal_log where risk_status = 1) *
+                             100))                                                                          as startUpScale,
+               floor((select (select count(1) from lab_hazard_subject_relation where hazard_id = rp.hazard_id) /
+                             (select count(DISTINCT subject_id) from lab_hazard_subject_relation) *
+                             100))                                                                          as labDisScale,
+               (SELECT GROUP_CONCAT(sr.fun_num)
+                FROM lab_risk_plan_sensor_relation sr
+                WHERE rp.id = sr.risk_plan_id)                                                                 fun_num,
+               (SELECT GROUP_CONCAT('(', sr.min_monitor, '-', sr.max_monitor, ')')
+                FROM lab_risk_plan_sensor_relation sr
+                WHERE rp.id = sr.risk_plan_id)                                                                 fun_monitor,
+               rp.create_by,
+               rp.create_time,
+               rp.user_id,
+               rp.evacuation
+        from lab_risk_plan rp
+                     INNER JOIN sys_user ur ON rp.user_id = ur.user_id
         <where>
             <if test="type != null and type != ''">
                 <if test="type == 1">
@@ -114,58 +157,66 @@
                 </if>
             </if>
             <if test="name != null and name != ''">
-                and rp.name like concat('%',#{name} ,'%')
+                and rp.name like concat('%', #{name}, '%')
             </if>
             <if test="createName != null and createName != ''">
-                and rp.create_by like concat('%',#{createName} ,'%')
+                and rp.create_by like concat('%', #{createName}, '%')
             </if>
-            <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
-                AND date_format(rp.create_time,'%y%m%d') &gt;= date_format(#{beginTime},'%y%m%d')
+            <if test="beginTime != null and beginTime != ''">
+                <!-- 开始时间检索 -->
+                AND date_format(rp.create_time, '%y%m%d') &gt;= date_format(#{beginTime}, '%y%m%d')
             </if>
-            <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
-                AND date_format(rp.create_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
+            <if test="endTime != null and endTime != ''">
+                <!-- 结束时间检索 -->
+                AND date_format(rp.create_time, '%y%m%d') &lt;= date_format(#{endTime}, '%y%m%d')
             </if>
             <if test="deptId != null and deptId != ''">
-                and (ur.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = #{deptId} OR FIND_IN_SET( #{deptId} , ancestors ) )
-                OR ur.dept_id IN (
-                SELECT d2.parent_id FROM sys_dept d2 WHERE d2.dept_id = #{deptId}
-                UNION ALL
-                SELECT d3.parent_id FROM sys_dept d3 WHERE d3.dept_id IN (SELECT d2.parent_id FROM sys_dept d2 WHERE d2.dept_id = #{deptId})
-                ))
+                and (ur.dept_id IN
+                     (SELECT dept_id FROM sys_dept WHERE dept_id = #{deptId} OR FIND_IN_SET(#{deptId}, ancestors))
+                        OR ur.dept_id IN (SELECT d2.parent_id
+                                          FROM sys_dept d2
+                                          WHERE d2.dept_id = #{deptId}
+                                          UNION ALL
+                                          SELECT d3.parent_id
+                                          FROM sys_dept d3
+                                          WHERE d3.dept_id IN
+                                                (SELECT d2.parent_id FROM sys_dept d2 WHERE d2.dept_id = #{deptId})))
             </if>
             <if test="searchValue != null and searchValue != ''">
                 and (
-                rp.name like concat('%',#{searchValue} ,'%') or
-                rp.create_by like concat('%',#{searchValue} ,'%')
-                )
+                        rp.name like concat('%', #{searchValue}, '%') or
+                        rp.create_by like concat('%', #{searchValue}, '%')
+                        )
             </if>
         </where>
-        ORDER BY rp.create_time DESC,rp.update_time DESC
+        ORDER BY rp.create_time DESC, rp.update_time DESC
     </select>
 
-    <select id="selectLabRiskPlanBySubjectList" parameterType="com.zd.laboratory.domain.vo.LabRiskPlanVO" resultMap="LabRiskPlanAndRelationResult">
+    <select id="selectLabRiskPlanBySubjectList" parameterType="com.zd.laboratory.domain.vo.LabRiskPlanVO"
+            resultMap="LabRiskPlanAndRelationResult">
         SELECT DISTINCT p.id,
-        p.name,
-        p.hazard_id,
-        p.container_id,
-        p.dept_id,
-        p.create_time,
-        p.dept_name,
-        p.user_id,
-        p.create_by,
-        p.update_time,
-        p.update_by,
-        p.remark,
-        p.message,
-        p.voicebroadcast,
-        p.information,
-        p.level,
-        p.evacuation,
-        (CONCAT(d.dept_class_name,d.`dept_name`,s.`name`)) topName,
-        s.`floor_id` floorId
-        FROM lab_risk_plan p INNER JOIN lab_risk_planjoinsub rp ON p.`id` = rp.`risk_plan_id`
-        INNER JOIN lab_subject s ON s.`id` = rp.`subject_id`
-        INNER JOIN sys_dept d ON d.dept_id = s.build_id
+                        p.name,
+                        p.hazard_id,
+                        p.container_id,
+                        p.dept_id,
+                        p.create_time,
+                        p.dept_name,
+                        p.user_id,
+                        p.create_by,
+                        p.update_time,
+                        p.update_by,
+                        p.remark,
+                        p.message,
+                        p.voicebroadcast,
+                        p.information,
+                        p.level,
+                        p.evacuation,
+                        (CONCAT(d.dept_class_name, d.`dept_name`, s.`name`)) topName,
+                        s.`floor_id`                                         floorId
+        FROM lab_risk_plan p
+                     INNER JOIN lab_risk_planjoinsub rp ON p.`id` = rp.`risk_plan_id`
+                     INNER JOIN lab_subject s ON s.`id` = rp.`subject_id`
+                     INNER JOIN sys_dept d ON d.dept_id = s.build_id
         <where>
             <if test="subjectId != null and subjectId != ''">
                 and rp.`subject_id` = #{subjectId}
@@ -189,97 +240,312 @@
         <!--p.level-->
         <!--FROM lab_risk_plan p INNER JOIN lab_hazard_subject_relation hsr ON p.hazard_id = hsr.`hazard_id`-->
         <!--<where>-->
-            <!--<if test="subjectId != null and subjectId != ''">-->
-                <!--and hsr.`subject_id` = #{subjectId}-->
-            <!--</if>-->
+        <!--<if test="subjectId != null and subjectId != ''">-->
+        <!--and hsr.`subject_id` = #{subjectId}-->
+        <!--</if>-->
         <!--</where>-->
     </select>
     <select id="selectRiskPlanCountBySubId"
             resultType="com.zd.laboratory.api.vo.LabRiskVO">
-        select
-            p.name as planName,
-            (select count(1) from lab_risk_plan_abnormal_log pl where pl.risk_plan_id = p.id and pl.subject_id = pj.subject_id and pl.risk_status = 1) as planCount,
-            (select create_time from lab_risk_plan_abnormal_log pl where pl.risk_plan_id = p.id and pl.subject_id = pj.subject_id and pl.risk_status = 1 order by create_time desc limit 1) as lastTime
-        from lab_risk_plan p right join lab_risk_planjoinsub pj on p.id = pj.risk_plan_id
+        select p.name                     as planName,
+               (select count(1)
+                from lab_risk_plan_abnormal_log pl
+                where pl.risk_plan_id = p.id
+                  and pl.subject_id = pj.subject_id
+                  and pl.risk_status = 1) as planCount,
+               (select create_time
+                from lab_risk_plan_abnormal_log pl
+                where pl.risk_plan_id = p.id
+                  and pl.subject_id = pj.subject_id
+                  and pl.risk_status = 1
+                order by create_time desc    limit 1) as lastTime
+        from lab_risk_plan p right join lab_risk_planjoinsub pj
+        on p.id = pj.risk_plan_id
 
         where pj.subject_id = #{subId}
     </select>
 
-    <insert id="insertLabRiskPlan" parameterType="com.zd.laboratory.domain.LabRiskPlan" keyProperty="id" useGeneratedKeys="true">
+    <insert id="insertLabRiskPlan" parameterType="com.zd.laboratory.domain.LabRiskPlan" keyProperty="id"
+            useGeneratedKeys="true">
         insert into lab_risk_plan
         <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="id != null">id,</if>
-            <if test="name != null">name,</if>
-            <if test="hazardId != null">hazard_id,</if>
-            <if test="containerId != null">container_id,</if>
-            <if test="deptId != null">dept_id,</if>
-            <if test="createTime != null">create_time,</if>
-            <if test="deptName != null">dept_name,</if>
-            <if test="userId != null">user_id,</if>
-            <if test="createBy != null">create_by,</if>
-            <if test="updateTime != null">update_time,</if>
-            <if test="updateBy != null">update_by,</if>
-            <if test="remark != null">remark,</if>
-            <if test="message != null">message,</if>
-            <if test="voicebroadcast != null">voicebroadcast,</if>
-            <if test="information != null">information,</if>
-            <if test="level != null">level,</if>
-            <if test="evacuation != null">evacuation,</if>
+            <if test="id != null">
+                id,
+            </if>
+            <if test="name != null">
+                name,
+            </if>
+            <if test="hazardId != null">
+                hazard_id,
+            </if>
+            <if test="containerId != null">
+                container_id,
+            </if>
+            <if test="deptId != null">
+                dept_id,
+            </if>
+            <if test="createTime != null">
+                create_time,
+            </if>
+            <if test="deptName != null">
+                dept_name,
+            </if>
+            <if test="userId != null">
+                user_id,
+            </if>
+            <if test="createBy != null">
+                create_by,
+            </if>
+            <if test="updateTime != null">
+                update_time,
+            </if>
+            <if test="updateBy != null">
+                update_by,
+            </if>
+            <if test="remark != null">
+                remark,
+            </if>
+            <if test="message != null">
+                message,
+            </if>
+            <if test="voicebroadcast != null">
+                voicebroadcast,
+            </if>
+            <if test="information != null">
+                information,
+            </if>
+            <if test="level != null">
+                level,
+            </if>
+            <if test="evacuation != null">
+                evacuation,
+            </if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="id != null">#{id},</if>
-            <if test="name != null">#{name},</if>
-            <if test="hazardId != null">#{hazardId},</if>
-            <if test="containerId != null">#{containerId},</if>
-            <if test="deptId != null">#{deptId},</if>
-            <if test="createTime != null">#{createTime},</if>
-            <if test="deptName != null">#{deptName},</if>
-            <if test="userId != null">#{userId},</if>
-            <if test="createBy != null">#{createBy},</if>
-            <if test="updateTime != null">#{updateTime},</if>
-            <if test="updateBy != null">#{updateBy},</if>
-            <if test="remark != null">#{remark},</if>
-            <if test="message != null">#{message},</if>
-            <if test="voicebroadcast != null">#{voicebroadcast},</if>
-            <if test="information != null">#{information},</if>
-            <if test="level != null">#{level},</if>
-            <if test="evacuation != null">#{evacuation},</if>
+            <if test="id != null">
+                #{id},
+            </if>
+            <if test="name != null">
+                #{name},
+            </if>
+            <if test="hazardId != null">
+                #{hazardId},
+            </if>
+            <if test="containerId != null">
+                #{containerId},
+            </if>
+            <if test="deptId != null">
+                #{deptId},
+            </if>
+            <if test="createTime != null">
+                #{createTime},
+            </if>
+            <if test="deptName != null">
+                #{deptName},
+            </if>
+            <if test="userId != null">
+                #{userId},
+            </if>
+            <if test="createBy != null">
+                #{createBy},
+            </if>
+            <if test="updateTime != null">
+                #{updateTime},
+            </if>
+            <if test="updateBy != null">
+                #{updateBy},
+            </if>
+            <if test="remark != null">
+                #{remark},
+            </if>
+            <if test="message != null">
+                #{message},
+            </if>
+            <if test="voicebroadcast != null">
+                #{voicebroadcast},
+            </if>
+            <if test="information != null">
+                #{information},
+            </if>
+            <if test="level != null">
+                #{level},
+            </if>
+            <if test="evacuation != null">
+                #{evacuation},
+            </if>
         </trim>
     </insert>
 
     <update id="updateLabRiskPlan" parameterType="com.zd.laboratory.domain.LabRiskPlan">
         update lab_risk_plan
         <trim prefix="SET" suffixOverrides=",">
-            <if test="name != null">name = #{name},</if>
-            <if test="hazardId != null">hazard_id = #{hazardId},</if>
-            <if test="containerId != null ">container_id = #{containerId},</if>
-            <if test="deptId != null">dept_id = #{deptId},</if>
-            <if test="createTime != null">create_time = #{createTime},</if>
-            <if test="deptName != null">dept_name = #{deptName},</if>
-            <if test="userId != null">user_id = #{userId},</if>
-            <if test="createBy != null">create_by = #{createBy},</if>
-            <if test="updateTime != null">update_time = #{updateTime},</if>
-            <if test="updateBy != null">update_by = #{updateBy},</if>
-            <if test="remark != null">remark = #{remark},</if>
-            <if test="message != null">message = #{message},</if>
-            <if test="voicebroadcast != null">voicebroadcast = #{voicebroadcast},</if>
-            <if test="information != null">information = #{information},</if>
-            <if test="level != null">level = #{level},</if>
-            <if test="evacuation != null">evacuation = #{evacuation},</if>
+            <if test="name != null">
+                name = #{name},
+            </if>
+            <if test="hazardId != null">
+                hazard_id = #{hazardId},
+            </if>
+            <if test="containerId != null">
+                container_id = #{containerId},
+            </if>
+            <if test="deptId != null">
+                dept_id = #{deptId},
+            </if>
+            <if test="createTime != null">
+                create_time = #{createTime},
+            </if>
+            <if test="deptName != null">
+                dept_name = #{deptName},
+            </if>
+            <if test="userId != null">
+                user_id = #{userId},
+            </if>
+            <if test="createBy != null">
+                create_by = #{createBy},
+            </if>
+            <if test="updateTime != null">
+                update_time = #{updateTime},
+            </if>
+            <if test="updateBy != null">
+                update_by = #{updateBy},
+            </if>
+            <if test="remark != null">
+                remark = #{remark},
+            </if>
+            <if test="message != null">
+                message = #{message},
+            </if>
+            <if test="voicebroadcast != null">
+                voicebroadcast = #{voicebroadcast},
+            </if>
+            <if test="information != null">
+                information = #{information},
+            </if>
+            <if test="level != null">
+                level = #{level},
+            </if>
+            <if test="evacuation != null">
+                evacuation = #{evacuation},
+            </if>
         </trim>
         where id = #{id}
     </update>
 
-    <delete id="deleteLabRiskPlanById" >
+    <delete id="deleteLabRiskPlanById">
         delete
         from lab_risk_plan
         where id = #{id}
     </delete>
 
     <delete id="deleteLabRiskPlanByIds">
-        delete from lab_risk_plan where id in
-        <foreach item="id" collection="array" open="(" separator="," close=")">
-            #{id}
-        </foreach>
+        delete
+        from lab_risk_plan
+        where id in (#{ids})
     </delete>
+    <select id="selectLabRiskPlanByName" resultType="int">
+        select count(*)
+        from lab_risk_plan
+        where name = #{name}
+    </select>
+    <select id="queryRiskPlanList" resultType="com.zd.laboratory.domain.LabRiskPlan"
+            parameterType="com.zd.laboratory.domain.vo.RiskPlanVo">
+        <include refid="selectLabRiskPlanVo"/>
+        <where>
+            <if test="riskPlanVo.searchValue != null  and riskPlanVo.searchValue != ''">
+                and (name like concat('%', #{riskPlanVo.searchValue}, '%')
+                    or create_by like concat('%', #{riskPlanVo.searchValue}, '%'))
+            </if>
+            <if test="riskPlanVo.startCondition != null">
+                and start_condition = #{riskPlanVo.startCondition}
+            </if>
+        </where>
+        order by create_time desc
+    </select>
+    <select id="selectSensorType" resultType="java.lang.Integer">
+        SELECT lrps.sensor_type
+        FROM lab_risk_plan lrp
+        LEFT JOIN lab_risk_plan_sensor_relation lrps on lrp.id = lrps.risk_plan_id
+        where lrp.id = #{riskPlanId}
+    </select>
+    <select id="selectRelationSubList" resultType="com.zd.laboratory.domain.vo.LabSubjectVO">
+        select ls.*, lrp.create_time relationTime
+        from lab_subject ls
+        LEFT JOIN lab_risk_planjoinsub lrp on ls.id = lrp.subject_id
+        <where>
+            <if test="labRiskPlanSubVo.riskPlanId != null">
+                and lrp.risk_plan_id = #{labRiskPlanSubVo.riskPlanId}
+            </if>
+            <if test="labRiskPlanSubVo.searchValue != null and labRiskPlanSubVo.searchValue != ''">
+                and ls.name = like concat('%', #{labRiskPlanSubVo.searchValue}, '%')
+            </if>
+            <if test="labRiskPlanSubVo.level != null">
+                and ls.level = #{labRiskPlanSubVo.level}
+            </if>
+            <if test="labRiskPlanSubVo.typeId != null">
+                and ls.type_id = #{labRiskPlanSubVo.typeId}
+            </if>
+            <if test="labRiskPlanSubVo.startTime != null and labRiskPlanSubVo.endTime != null">
+                and lrp.create_time between #{labRiskPlanSubVo.startTime}
+                and #{labRiskPlanSubVo.endTime}
+            </if>
+        </where>
+        order by lrp.create_time desc
+    </select>
+    <select id="getLabRiskPlanNoJoinSub" resultType="com.zd.laboratory.domain.vo.LabSubjectVO">
+        select DISTINCT ls.*
+        from lab_subject ls
+        LEFT JOIN lab_sensor lsr ON lsr.subject_id = ls.id
+        <where>
+            <if test="labRiskPlanSubVo.riskPlanId != null">
+                and ls.id not in
+                    (select ls.id
+                     from lab_subject ls
+                                  LEFT JOIN lab_risk_planjoinsub lrp on ls.id = lrp.subject_id
+                     where lrp.risk_plan_id = #{labRiskPlanSubVo.riskPlanId})
+                    AND lsr.type in (SELECT lrps.sensor_type
+                                       FROM lab_risk_plan lrp
+                                                    LEFT JOIN lab_risk_plan_sensor_relation lrps on lrp.id = lrps.risk_plan_id
+                                       where lrp.id = #{labRiskPlanSubVo.riskPlanId})
+            </if>
+            <if test="labRiskPlanSubVo.searchValue != null and labRiskPlanSubVo.searchValue != ''">
+                and ls.name = like concat('%', #{labRiskPlanSubVo.searchValue}, '%')
+            </if>
+            <if test="labRiskPlanSubVo.level != null">
+                #{labRiskPlanSubVo.level}
+            </if>
+            <if test="labRiskPlanSubVo.typeId != null">
+                and ls.type_id = #{labRiskPlanSubVo.typeId}
+            </if>
+        </where>
+    </select>
+    <select id="selectLabRiskPlanByRiskPlanId" resultType="com.zd.laboratory.domain.LabRiskPlan">
+            SELECT DISTINCT p.id,
+                        p.name,
+                        p.hazard_id,
+                        p.container_id,
+                        p.dept_id,
+                        p.create_time,
+                        p.dept_name,
+                        p.user_id,
+                        p.create_by,
+                        p.update_time,
+                        p.update_by,
+                        p.remark,
+                        p.message,
+                        p.voicebroadcast,
+                        p.information,
+                        p.level,
+                        p.evacuation,
+                        (CONCAT(d.dept_class_name, d.`dept_name`, s.`name`)) topName,
+                        s.`floor_id`                                         floorId
+        FROM lab_risk_plan p
+                     INNER JOIN lab_risk_planjoinsub rp ON p.`id` = rp.`risk_plan_id`
+                     INNER JOIN lab_subject s ON s.`id` = rp.`subject_id`
+                     INNER JOIN sys_dept d ON d.dept_id = s.build_id
+        <where>
+            <if test="riskPlanId != null">
+                and p.`id` = #{riskPlanId}
+            </if>
+        </where>
+     </select>
 </mapper>

+ 134 - 50
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabRiskPlanSensorRelationMapper.xml

@@ -1,44 +1,65 @@
 <?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">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.zd.laboratory.mapper.LabRiskPlanSensorRelationMapper">
-
     <resultMap type="com.zd.laboratory.domain.LabRiskPlanSensorRelation" id="LabRiskPlanSensorRelationResult">
-        <result property="id"    column="id"    />
-        <result property="riskPlanId"    column="risk_plan_id"    />
-        <result property="sensorId"    column="sensor_id"    />
-        <result property="minMonitor"    column="min_monitor"    />
-        <result property="maxMonitor"    column="max_monitor"    />
-        <result property="createTime"    column="create_time"    />
-        <result property="funNum"    column="fun_num"    />
+        <result property="id" column="id"/>
+        <result property="riskPlanId" column="risk_plan_id"/>
+        <result property="riskPlanLevelId" column="risk_plan_level_id"/>
+        <result property="sensorId" column="sensor_id"/>
+        <result property="minMonitor" column="min_monitor"/>
+        <result property="maxMonitor" column="max_monitor"/>
+        <result property="createTime" column="create_time"/>
+        <result property="funNum" column="fun_num"/>
+        <result property="sensorType" column="sensor_type"/>
     </resultMap>
 
     <sql id="selectLabRiskPlanSensorRelationVo">
-        select id, risk_plan_id, sensor_id, min_monitor, max_monitor, create_time,fun_num from lab_risk_plan_sensor_relation
+        select id, risk_plan_id, risk_plan_level_id, sensor_id, min_monitor, max_monitor, create_time, fun_num ,sensor_type
+        from lab_risk_plan_sensor_relation
     </sql>
 
-    <select id="selectLabRiskPlanSensorRelationList" parameterType="com.zd.laboratory.domain.LabRiskPlanSensorRelation" resultMap="LabRiskPlanSensorRelationResult">
+    <select id="selectLabRiskPlanSensorRelationList" parameterType="com.zd.laboratory.domain.LabRiskPlanSensorRelation"
+            resultMap="LabRiskPlanSensorRelationResult">
         <include refid="selectLabRiskPlanSensorRelationVo"/>
         <where>
-            <if test="riskPlanId != null "> and risk_plan_id = #{riskPlanId}</if>
-            <if test="sensorId != null "> and sensor_id = #{sensorId}</if>
-            <if test="minMonitor != null "> and min_monitor = #{minMonitor}</if>
-            <if test="maxMonitor != null "> and max_monitor = #{maxMonitor}</if>
+            <if test="riskPlanId != null">
+                and risk_plan_id = #{riskPlanId}
+            </if>
+            <if test="sensorId != null">
+                and sensor_id = #{sensorId}
+            </if>
+            <if test="minMonitor != null">
+                and min_monitor = #{minMonitor}
+            </if>
+            <if test="maxMonitor != null">
+                and max_monitor = #{maxMonitor}
+            </if>
         </where>
     </select>
 
-    <select id="selectLabRiskPlanSensorRelationListNoSelf" parameterType="com.zd.laboratory.domain.LabRiskPlanSensorRelation" resultMap="LabRiskPlanSensorRelationResult">
+    <select id="selectLabRiskPlanSensorRelationListNoSelf"
+            parameterType="com.zd.laboratory.domain.LabRiskPlanSensorRelation"
+            resultMap="LabRiskPlanSensorRelationResult">
         <include refid="selectLabRiskPlanSensorRelationVo"/>
         <where>
-            <if test="riskPlanId != null "> and risk_plan_id != #{riskPlanId}</if>
-            <if test="sensorId != null "> and sensor_id = #{sensorId}</if>
-            <if test="minMonitor != null "> and min_monitor = #{minMonitor}</if>
-            <if test="maxMonitor != null "> and max_monitor = #{maxMonitor}</if>
+            <if test="riskPlanId != null">
+                and risk_plan_id != #{riskPlanId}
+            </if>
+            <if test="sensorId != null">
+                and sensor_id = #{sensorId}
+            </if>
+            <if test="minMonitor != null">
+                and min_monitor = #{minMonitor}
+            </if>
+            <if test="maxMonitor != null">
+                and max_monitor = #{maxMonitor}
+            </if>
         </where>
     </select>
 
-    <select id="selectLabRiskPlanSensorRelationById"  resultMap="LabRiskPlanSensorRelationResult">
+    <select id="selectLabRiskPlanSensorRelationById" resultMap="LabRiskPlanSensorRelationResult">
         <include refid="selectLabRiskPlanSensorRelationVo"/>
         where id = #{id}
     </select>
@@ -51,57 +72,120 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <insert id="insertLabRiskPlanSensorRelation" parameterType="com.zd.laboratory.domain.LabRiskPlanSensorRelation">
         insert into lab_risk_plan_sensor_relation
         <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="id != null">id,</if>
-            <if test="riskPlanId != null">risk_plan_id,</if>
-            <if test="sensorId != null">sensor_id,</if>
-            <if test="minMonitor != null">min_monitor,</if>
-            <if test="maxMonitor != null">max_monitor,</if>
-            <if test="createTime != null">create_time,</if>
-         </trim>
+            <if test="id != null">
+                id,
+            </if>
+            <if test="riskPlanId != null">
+                risk_plan_id,
+            </if>
+            <if test="sensorId != null">
+                sensor_id,
+            </if>
+            <if test="minMonitor != null">
+                min_monitor,
+            </if>
+            <if test="maxMonitor != null">
+                max_monitor,
+            </if>
+            <if test="createTime != null">
+                create_time,
+            </if>
+        </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="id != null">#{id},</if>
-            <if test="riskPlanId != null">#{riskPlanId},</if>
-            <if test="sensorId != null">#{sensorId},</if>
-            <if test="minMonitor != null">#{minMonitor},</if>
-            <if test="maxMonitor != null">#{maxMonitor},</if>
-            <if test="createTime != null">#{createTime},</if>
-         </trim>
+            <if test="id != null">
+                #{id},
+            </if>
+            <if test="riskPlanId != null">
+                #{riskPlanId},
+            </if>
+            <if test="sensorId != null">
+                #{sensorId},
+            </if>
+            <if test="minMonitor != null">
+                #{minMonitor},
+            </if>
+            <if test="maxMonitor != null">
+                #{maxMonitor},
+            </if>
+            <if test="createTime != null">
+                #{createTime},
+            </if>
+        </trim>
     </insert>
 
     <insert id="insertOrUpdateLabRiskPlanSensorRelation" keyProperty="id" useGeneratedKeys="true">
-        insert into lab_risk_plan_sensor_relation(id, risk_plan_id, sensor_id, min_monitor, max_monitor, create_time,fun_num)
-        values
+        insert into lab_risk_plan_sensor_relation(id, risk_plan_id, sensor_id, min_monitor, max_monitor, create_time,
+                                                  fun_num,sensor_type)
+                values
         <foreach collection="entities" item="entity" separator=",">
-            (#{entity.id}, #{entity.riskPlanId}, #{entity.sensorId}, #{entity.minMonitor}, #{entity.maxMonitor}, #{entity.createTime}, #{entity.funNum})
+            (#{entity.id}, #{entity.riskPlanId}, #{entity.sensorId}, #{entity.minMonitor}, #{entity.maxMonitor},
+             #{entity.createTime}, #{entity.funNum},#{entity.sensorType}))
         </foreach>
         on duplicate key update
-        risk_plan_id = values(risk_plan_id) , sensor_id = values(sensor_id) , min_monitor = values(min_monitor) , max_monitor = values(max_monitor) ,create_time = values(create_time)
-        ,fun_num = values(fun_num)
+                                 risk_plan_id =
+                         values (risk_plan_id), sensor_id =
+                         values (sensor_id), min_monitor =
+                         values (min_monitor), max_monitor =
+                         values (max_monitor), create_time =
+                         values (create_time)
+                                 , fun_num =
+                         values (fun_num), sensor_type =
+                         values (sensor_type)
     </insert>
 
     <update id="updateLabRiskPlanSensorRelation" parameterType="com.zd.laboratory.domain.LabRiskPlanSensorRelation">
         update lab_risk_plan_sensor_relation
         <trim prefix="SET" suffixOverrides=",">
-            <if test="riskPlanId != null">risk_plan_id = #{riskPlanId},</if>
-            <if test="sensorId != null">sensor_id = #{sensorId},</if>
-            <if test="minMonitor != null">min_monitor = #{minMonitor},</if>
-            <if test="maxMonitor != null">max_monitor = #{maxMonitor},</if>
-            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="riskPlanId != null">
+                risk_plan_id = #{riskPlanId},
+            </if>
+            <if test="sensorId != null">
+                sensor_id = #{sensorId},
+            </if>
+            <if test="minMonitor != null">
+                min_monitor = #{minMonitor},
+            </if>
+            <if test="maxMonitor != null">
+                max_monitor = #{maxMonitor},
+            </if>
+            <if test="createTime != null">
+                create_time = #{createTime},
+            </if>
         </trim>
         where id = #{id}
     </update>
 
-    <delete id="deleteLabRiskPlanSensorRelationById" >
-        delete from lab_risk_plan_sensor_relation where id = #{id}
+    <delete id="deleteLabRiskPlanSensorRelationById">
+        delete
+        from lab_risk_plan_sensor_relation
+        where id = #{id}
     </delete>
 
     <delete id="deleteLabRiskPlanSensorRelationByIds">
-        delete from lab_risk_plan_sensor_relation where id in
+        delete
+        from lab_risk_plan_sensor_relation where id in
         <foreach item="id" collection="array" open="(" separator="," close=")">
             #{id}
         </foreach>
     </delete>
     <delete id="deleteByPlanId">
-        delete from lab_risk_plan_sensor_relation where risk_plan_id = #{riskPlanId}
+        delete
+        from lab_risk_plan_sensor_relation
+        where risk_plan_id = #{riskPlanId}
     </delete>
+    <delete id="deleteByLevelId">
+        delete
+        from lab_risk_plan_sensor_relation
+        where risk_plan_level_id = #{riskPlanLevelId}
+    </delete>
+    <select id="selectSensorRelationListByLevelId" resultMap="LabRiskPlanSensorRelationResult">
+     <include refid="selectLabRiskPlanSensorRelationVo"/>
+        where risk_plan_level_id = #{levelId}
+    </select>
+    <select id="selectSensorListBySubId" resultType="com.zd.laboratory.domain.LabRiskPlanSensorRelation">
+    SELECT lrpsr.*
+    FROM lab_risk_planjoinsub lrp
+    LEFT JOIN lab_risk_plan_sensor_relation lrpsr on lrp.risk_plan_id = lrpsr.risk_plan_id
+    WHERE lrp.subject_id = #{subId}
+    </select>
 </mapper>

+ 212 - 68
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabRiskPlanjoinsubMapper.xml

@@ -1,47 +1,105 @@
 <?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">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.zd.laboratory.mapper.LabRiskPlanjoinsubMapper">
-
     <resultMap type="com.zd.laboratory.domain.LabRiskPlanjoinsub" id="LabRiskPlanjoinsubResult">
-        <result property="id"    column="id"    />
-        <result property="riskPlanId"    column="risk_plan_id"    />
-        <result property="subjectId"    column="subject_id"    />
-        <result property="joinStatus"    column="join_status"    />
-        <result property="userId"    column="user_id"    />
-        <result property="createBy"    column="create_by"    />
-        <result property="createTime"    column="create_time"    />
-        <result property="updateBy"    column="update_by"    />
-        <result property="updateTime"    column="update_time"    />
-        <result property="remark"    column="remark"    />
+        <result property="id" column="id"/>
+        <result property="riskPlanId" column="risk_plan_id"/>
+        <result property="subjectId" column="subject_id"/>
+        <result property="joinStatus" column="join_status"/>
+        <result property="userId" column="user_id"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
     </resultMap>
 
     <sql id="selectLabRiskPlanjoinsubVo">
-        select id, risk_plan_id, subject_id, join_status, user_id, create_by, create_time, update_by, update_time, remark,
-        (select s.name from lab_subject s where s.id = subject_id)subName
+        select id,
+               risk_plan_id,
+               subject_id,
+               join_status,
+               user_id,
+               create_by,
+               create_time,
+               update_by,
+               update_time,
+               remark,
+               (select s.name from lab_subject s where s.id = subject_id) subName
         from lab_risk_planjoinsub
     </sql>
     <sql id="selectLabRiskPlanjoinsubListVo">
-        select t.id, t.risk_plan_id, t.subject_id, t.join_status, t.user_id, t.create_by, t.create_time, t.update_by, t.update_time, t.remark from lab_risk_planjoinsub as t
+        select t.id,
+               t.risk_plan_id,
+               t.subject_id,
+               t.join_status,
+               t.user_id,
+               t.create_by,
+               t.create_time,
+               t.update_by,
+               t.update_time,
+               t.remark
+        from lab_risk_planjoinsub as t
     </sql>
-    <select id="selectLabRiskPlanjoinsubList" parameterType="com.zd.laboratory.domain.LabRiskPlanjoinsub" resultMap="LabRiskPlanjoinsubResult">
+
+    <insert id="batchInsert" keyColumn="id" keyProperty="id" parameterType="map" useGeneratedKeys="true">
+        <!--@mbg.generated-->
+        insert into lab_risk_planjoinsub
+                (risk_plan_id,
+                 subject_id,
+                 join_status,
+                 user_id,
+                 create_by,
+                 create_time,
+                 update_by,
+                 update_time,
+                 remark)
+                values
+        <foreach collection="list" item="item" separator=",">
+            (#{item.riskPlanId,jdbcType=BIGINT}, #{item.subjectId,jdbcType=BIGINT},
+             #{item.joinStatus,jdbcType=INTEGER}, #{item.userId,jdbcType=BIGINT},
+             #{item.createBy,jdbcType=VARCHAR}, #{item.createTime,jdbcType=TIMESTAMP},
+             #{item.updateBy,jdbcType=VARCHAR}, #{item.updateTime,jdbcType=TIMESTAMP}, #{item.remark,jdbcType=VARCHAR})
+        </foreach>
+    </insert>
+
+    <select id="selectLabRiskPlanjoinsubList" parameterType="com.zd.laboratory.domain.LabRiskPlanjoinsub"
+            resultMap="LabRiskPlanjoinsubResult">
         <include refid="selectLabRiskPlanjoinsubVo"/>
         <where>
-            <if test="riskPlanId != null "> and risk_plan_id = #{riskPlanId}</if>
-            <if test="subjectId != null "> and subject_id = #{subjectId}</if>
-            <if test="joinStatus != null "> and join_status = #{joinStatus}</if>
-            <if test="userId != null "> and user_id = #{userId}</if>
+            <if test="riskPlanId != null">
+                and risk_plan_id = #{riskPlanId}
+            </if>
+            <if test="subjectId != null">
+                and subject_id = #{subjectId}
+            </if>
+            <if test="joinStatus != null">
+                and join_status = #{joinStatus}
+            </if>
+            <if test="userId != null">
+                and user_id = #{userId}
+            </if>
         </where>
     </select>
 
-    <select id="getLabRiskPlanjoinsubList" parameterType="com.zd.laboratory.domain.vo.LabRiskPlanjoinsubVO" resultType="com.zd.laboratory.domain.vo.LabRiskPlanjoinsubVO">
+    <select id="getLabRiskPlanjoinsubList" parameterType="com.zd.laboratory.domain.vo.LabRiskPlanjoinsubVO"
+            resultType="com.zd.laboratory.domain.vo.LabRiskPlanjoinsubVO">
         <include refid="selectLabRiskPlanjoinsubVo"/>
         <where>
-            <if test="riskPlanId != null "> and risk_plan_id = #{riskPlanId}</if>
-            <if test="subjectId != null "> and subject_id = #{subjectId}</if>
-            <if test="joinStatus != null "> and join_status = #{joinStatus}</if>
-            <if test="userId != null "> and user_id = #{userId}</if>
+            <if test="riskPlanId != null">
+                and risk_plan_id = #{riskPlanId}
+            </if>
+            <if test="subjectId != null">
+                and subject_id = #{subjectId}
+            </if>
+            <if test="joinStatus != null">
+                and join_status = #{joinStatus}
+            </if>
+            <if test="userId != null">
+                and user_id = #{userId}
+            </if>
             <if test="riskPlanIds != null  and riskPlanIds.size > 0">
                 AND risk_plan_id in
                 <foreach item="riskPlanId" collection="riskPlanIds" open="(" separator="," close=")">
@@ -51,10 +109,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
     </select>
 
-    <select id="getPlanjoinsubNoRiskList" parameterType="com.zd.laboratory.domain.vo.LabRiskPlanjoinsubVO" resultType="com.zd.laboratory.domain.vo.LabRiskPlanjoinsubVO">
+    <select id="getPlanjoinsubNoRiskList" parameterType="com.zd.laboratory.domain.vo.LabRiskPlanjoinsubVO"
+            resultType="com.zd.laboratory.domain.vo.LabRiskPlanjoinsubVO">
         <include refid="selectLabRiskPlanjoinsubVo"/>
         <where>
-            <if test="riskPlanId != null "> and risk_plan_id != #{riskPlanId}</if>
+            <if test="riskPlanId != null">
+                and risk_plan_id != #{riskPlanId}
+            </if>
             <if test="subIds != null  and subIds.size > 0">
                 AND subject_id in
                 <foreach item="subId" collection="subIds" open="(" separator="," close=")">
@@ -64,87 +125,170 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
     </select>
 
-    <select id="selectLabRiskPlanjoinsubById"  resultMap="LabRiskPlanjoinsubResult">
+    <select id="selectLabRiskPlanjoinsubById" resultMap="LabRiskPlanjoinsubResult">
         <include refid="selectLabRiskPlanjoinsubVo"/>
         where id = #{id}
     </select>
 
     <select id="selectLabRiskPlanjoinsubByPlanId" resultMap="LabRiskPlanjoinsubResult">
         <include refid="selectLabRiskPlanjoinsubVo"/>
-        where risk_plan_id = #{id} and user_id = #{userId}
+        where risk_plan_id = #{id}
+          and user_id = #{userId}
     </select>
 
-    <insert id="insertLabRiskPlanjoinsub" parameterType="com.zd.laboratory.domain.LabRiskPlanjoinsub" useGeneratedKeys="true" keyProperty="id">
+    <insert id="insertLabRiskPlanjoinsub" parameterType="com.zd.laboratory.domain.LabRiskPlanjoinsub"
+            useGeneratedKeys="true" keyProperty="id">
         insert into lab_risk_planjoinsub
         <trim prefix="(" suffix=")" suffixOverrides=",">
-    <if test="riskPlanId != null">risk_plan_id,</if>
-
-    <if test="subjectId != null">subject_id,</if>
+            <if test="riskPlanId != null">
+                risk_plan_id,
+            </if>
 
-    <if test="joinStatus != null">join_status,</if>
+            <if test="subjectId != null">
+                subject_id,
+            </if>
 
-    <if test="userId != null">user_id,</if>
+            <if test="joinStatus != null">
+                join_status,
+            </if>
 
-    <if test="createBy != null">create_by,</if>
+            <if test="userId != null">
+                user_id,
+            </if>
 
-    <if test="createTime != null">create_time,</if>
+            <if test="createBy != null">
+                create_by,
+            </if>
 
-    <if test="updateBy != null">update_by,</if>
+            <if test="createTime != null">
+                create_time,
+            </if>
 
-    <if test="updateTime != null">update_time,</if>
+            <if test="updateBy != null">
+                update_by,
+            </if>
 
-    <if test="remark != null">remark,</if>
+            <if test="updateTime != null">
+                update_time,
+            </if>
 
-         </trim>
+            <if test="remark != null">
+                remark,
+            </if>
+        </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
-    <if test="riskPlanId != null">#{riskPlanId},</if>
-    <if test="subjectId != null">#{subjectId},</if>
-    <if test="joinStatus != null">#{joinStatus},</if>
-    <if test="userId != null">#{userId},</if>
-    <if test="createBy != null">#{createBy},</if>
-    <if test="createTime != null">#{createTime},</if>
-    <if test="updateBy != null">#{updateBy},</if>
-    <if test="updateTime != null">#{updateTime},</if>
-    <if test="remark != null">#{remark},</if>
-         </trim>
+            <if test="riskPlanId != null">
+                #{riskPlanId},
+            </if>
+            <if test="subjectId != null">
+                #{subjectId},
+            </if>
+            <if test="joinStatus != null">
+                #{joinStatus},
+            </if>
+            <if test="userId != null">
+                #{userId},
+            </if>
+            <if test="createBy != null">
+                #{createBy},
+            </if>
+            <if test="createTime != null">
+                #{createTime},
+            </if>
+            <if test="updateBy != null">
+                #{updateBy},
+            </if>
+            <if test="updateTime != null">
+                #{updateTime},
+            </if>
+            <if test="remark != null">
+                #{remark},
+            </if>
+        </trim>
     </insert>
 
     <update id="updateLabRiskPlanjoinsub" parameterType="com.zd.laboratory.domain.LabRiskPlanjoinsub">
         update lab_risk_planjoinsub
         <trim prefix="SET" suffixOverrides=",">
-            <if test="riskPlanId != null">risk_plan_id = #{riskPlanId},</if>
-            <if test="subjectId != null">subject_id = #{subjectId},</if>
-            <if test="joinStatus != null">join_status = #{joinStatus},</if>
-            <if test="userId != null">user_id = #{userId},</if>
-            <if test="createBy != null">create_by = #{createBy},</if>
-            <if test="createTime != null">create_time = #{createTime},</if>
-            <if test="updateBy != null">update_by = #{updateBy},</if>
-            <if test="updateTime != null">update_time = #{updateTime},</if>
-            <if test="remark != null">remark = #{remark},</if>
+            <if test="riskPlanId != null">
+                risk_plan_id = #{riskPlanId},
+            </if>
+            <if test="subjectId != null">
+                subject_id = #{subjectId},
+            </if>
+            <if test="joinStatus != null">
+                join_status = #{joinStatus},
+            </if>
+            <if test="userId != null">
+                user_id = #{userId},
+            </if>
+            <if test="createBy != null">
+                create_by = #{createBy},
+            </if>
+            <if test="createTime != null">
+                create_time = #{createTime},
+            </if>
+            <if test="updateBy != null">
+                update_by = #{updateBy},
+            </if>
+            <if test="updateTime != null">
+                update_time = #{updateTime},
+            </if>
+            <if test="remark != null">
+                remark = #{remark},
+            </if>
         </trim>
         where id = #{id}
     </update>
 
-    <delete id="deleteLabRiskPlanjoinsubById" >
-        delete from lab_risk_planjoinsub where id = #{id}
+    <delete id="deleteLabRiskPlanjoinsubById">
+        delete
+        from lab_risk_planjoinsub
+        where id = #{id}
     </delete>
 
     <delete id="deleteLabRiskPlanjoinsubByIds">
-        delete from lab_risk_planjoinsub where id in
+        delete
+        from lab_risk_planjoinsub where id in
         <foreach item="id" collection="array" open="(" separator="," close=")">
             #{id}
         </foreach>
     </delete>
 
-    <delete id="deleteByPlanjoinsubId" >
-        delete from lab_risk_planjoinsub where risk_plan_id = #{id}
+    <delete id="deleteByPlanjoinsubId">
+        delete
+        from lab_risk_planjoinsub
+        where risk_plan_id = #{id}
     </delete>
 
     <delete id="deleteByPlanjoinsub" parameterType="com.zd.laboratory.domain.LabRiskPlanjoinsub">
-        delete from lab_risk_planjoinsub where risk_plan_id = #{riskPlanId} and user_id = #{userId}
+        delete
+        from lab_risk_planjoinsub
+        where risk_plan_id = #{riskPlanId}
+          and user_id = #{userId}
     </delete>
 
     <delete id="removeByPlanjoinsubId" parameterType="com.zd.laboratory.domain.LabRiskPlanjoinsub">
-        delete from lab_risk_planjoinsub where risk_plan_id = #{riskPlanId} and subject_id = #{subjectId}
+        delete
+        from lab_risk_planjoinsub
+        where risk_plan_id = #{riskPlanId}
+          and subject_id = #{subjectId}
+    </delete>
+    <select id="selectCount" resultType="int">
+        SELECT count(*)
+        FROM `lab_risk_planjoinsub`
+        where risk_plan_id in (#{ids})
+    </select>
+    <select id="selectLabRiskPlanjoinsubByRiskPlanId" resultType="com.zd.laboratory.domain.vo.LabSubjectVO">
+        select ls.*
+        FROM lab_risk_planjoinsub lrp
+                     LEFT JOIN lab_subject ls on lrp.subject_id = ls.id
+        where lrp.risk_plan_id = #{riskPlanId}
+    </select>
+    <delete id="deleteByPlanjoinsubByRiskIdAndSubId">
+        delete
+        from lab_risk_planjoinsub
+        where risk_plan_id = #{labRiskPlanSubVo.riskPlanId}
+          and subject_id = #{labRiskPlanSubVo.subjectId}
     </delete>
 </mapper>

+ 70 - 0
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabSensorHazardRelationMapper.xml

@@ -0,0 +1,70 @@
+<?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.zd.laboratory.mapper.LabSensorHazardRelationMapper">
+  <resultMap id="BaseResultMap" type="com.zd.laboratory.domain.LabSensorHazardRelation">
+    <!--@mbg.generated-->
+    <!--@Table lab_sensor_hazard_relation-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="risk_plan_id" jdbcType="BIGINT" property="riskPlanId" />
+    <result column="subject_id" jdbcType="BIGINT" property="subjectId" />
+    <result column="sensor_id" jdbcType="BIGINT" property="sensorId" />
+    <result column="hazard_subject_id" jdbcType="BIGINT" property="hazardSubjectId" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, risk_plan_id, subject_id, sensor_id, hazard_subject_id, create_time
+  </sql>
+  <update id="updateBatch" parameterType="java.util.List">
+    <!--@mbg.generated-->
+    update lab_sensor_hazard_relation
+    <trim prefix="set" suffixOverrides=",">
+      <trim prefix="risk_plan_id = case" suffix="end,">
+        <foreach collection="list" index="index" item="item">
+          when id = #{item.id,jdbcType=BIGINT} then #{item.riskPlanId,jdbcType=BIGINT}
+        </foreach>
+      </trim>
+      <trim prefix="subject_id = case" suffix="end,">
+        <foreach collection="list" index="index" item="item">
+          when id = #{item.id,jdbcType=BIGINT} then #{item.subjectId,jdbcType=BIGINT}
+        </foreach>
+      </trim>
+      <trim prefix="sensor_id = case" suffix="end,">
+        <foreach collection="list" index="index" item="item">
+          when id = #{item.id,jdbcType=BIGINT} then #{item.sensorId,jdbcType=BIGINT}
+        </foreach>
+      </trim>
+      <trim prefix="hazard_subject_id = case" suffix="end,">
+        <foreach collection="list" index="index" item="item">
+          when id = #{item.id,jdbcType=BIGINT} then #{item.hazardSubjectId,jdbcType=BIGINT}
+        </foreach>
+      </trim>
+      <trim prefix="create_time = case" suffix="end,">
+        <foreach collection="list" index="index" item="item">
+          when id = #{item.id,jdbcType=BIGINT} then #{item.createTime,jdbcType=TIMESTAMP}
+        </foreach>
+      </trim>
+    </trim>
+    where id in
+    <foreach close=")" collection="list" item="item" open="(" separator=", ">
+      #{item.id,jdbcType=BIGINT}
+    </foreach>
+  </update>
+  <insert id="batchInsert" keyColumn="id" keyProperty="id" parameterType="map" useGeneratedKeys="true">
+    <!--@mbg.generated-->
+    insert into lab_sensor_hazard_relation
+    (risk_plan_id, subject_id, sensor_id, hazard_subject_id, create_time)
+    values
+    <foreach collection="list" item="item" separator=",">
+      (#{item.riskPlanId,jdbcType=BIGINT}, #{item.subjectId,jdbcType=BIGINT}, #{item.sensorId,jdbcType=BIGINT}, #{item.hazardSubjectId,jdbcType=BIGINT}, #{item.createTime,jdbcType=TIMESTAMP}
+        )
+    </foreach>
+  </insert>
+  <select id="getSensorHazardList" resultType="com.zd.laboratory.domain.LabSensorHazardRelation">
+        select lshr.*,ls.`name` sensorName,lhsr.another_name hazardName
+        from lab_sensor_hazard_relation lshr LEFT JOIN lab_sensor ls on lshr.sensor_id = ls.id
+        LEFT JOIN lab_hazard_subject_relation lhsr on lshr.hazard_subject_id = lhsr.id
+        where lshr.risk_plan_id = #{riskPlanId}
+        and lshr.subject_id = #{id}
+  </select>
+</mapper>

+ 10 - 0
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabSensorMapper.xml

@@ -299,4 +299,14 @@
             #{id}
         </foreach>
     </delete>
+    <select id="getSensorListBySubId" resultMap="LabSensorResult">
+        select *
+        from lab_sensor
+        where subject_id = #{id}
+    </select>
+    <select id="getSensorTypesBySubId" resultType="java.lang.Long">
+        select type
+        from lab_sensor
+        where subject_id = #{id}
+    </select>
 </mapper>

+ 4 - 0
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabSubjectMapper.xml

@@ -875,6 +875,10 @@
         </where>
 
     </select>
+    <select id="selectLabSubjectListPage" resultType="com.zd.laboratory.domain.vo.LabSubjectVO">
+        select * from lab_subject
+
+    </select>
     <select id="selectLabSubjectListByLayout" parameterType="com.zd.laboratory.domain.LabSubject" resultMap="LabSubjectResult">
         select
         id, name, floor_id,layout_id,build_id,sub_dept,level, check_out,check_in,room,dept_id,