|
|
@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONArray;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.zd.algorithm.api.camera.feign.RemoteCameraService;
|
|
|
import com.zd.algorithm.api.speaker.entity.ParamVo;
|
|
|
import com.zd.algorithm.api.speaker.entity.PlayVo;
|
|
|
import com.zd.algorithm.api.speaker.feign.RemoteSpeakService;
|
|
|
@@ -18,10 +19,10 @@ import com.zd.common.core.utils.StringUtils;
|
|
|
import com.zd.laboratory.api.entity.FunctionStatus;
|
|
|
import com.zd.laboratory.api.entity.LabMessageContent;
|
|
|
import com.zd.laboratory.api.entity.SensorFunctionStatus;
|
|
|
-import com.zd.laboratory.api.vo.SenseValVO;
|
|
|
import com.zd.laboratory.api.vo.SubFunction;
|
|
|
import com.zd.laboratory.config.HardwareFunctionStatusConfig;
|
|
|
import com.zd.laboratory.domain.*;
|
|
|
+import com.zd.laboratory.domain.dto.LabBuildFloorLayoutDTO;
|
|
|
import com.zd.laboratory.domain.dto.LabRiskPlanDTO;
|
|
|
import com.zd.laboratory.domain.vo.*;
|
|
|
import com.zd.laboratory.mapper.*;
|
|
|
@@ -37,6 +38,7 @@ import com.zd.model.enums.HardwareTypeEnum;
|
|
|
import com.zd.model.enums.SenseType;
|
|
|
import com.zd.model.enums.WarnMessageTypeEnum;
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
+import org.jetbrains.annotations.NotNull;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
@@ -124,6 +126,12 @@ public class LabRiskPlanServiceImpl extends ServiceImpl<LabRiskPlanMapper, LabRi
|
|
|
@Autowired
|
|
|
private LabBuildFloorLayoutMapper labBuildFloorLayoutMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ILabRiskPlanAbnormalGroupService labRiskPlanAbnormalGroupService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private RemoteCameraService remoteCameraService;
|
|
|
+
|
|
|
private static final Logger log = LoggerFactory.getLogger(LabRiskPlanServiceImpl.class);
|
|
|
|
|
|
|
|
|
@@ -595,6 +603,8 @@ public class LabRiskPlanServiceImpl extends ServiceImpl<LabRiskPlanMapper, LabRi
|
|
|
if (i > 0) {
|
|
|
throw new ServiceException("该预案已经绑定实验室,请先解除绑定关系再删除!");
|
|
|
}
|
|
|
+ //删除预案级别以下信息
|
|
|
+ labRiskPlanLevelService.deleteByRiskPlanId(ids);
|
|
|
return labRiskPlanMapper.deleteLabRiskPlanByIds(ids);
|
|
|
}
|
|
|
|
|
|
@@ -1009,13 +1019,8 @@ public class LabRiskPlanServiceImpl extends ServiceImpl<LabRiskPlanMapper, LabRi
|
|
|
|
|
|
//根据实验室Id查询 云盒传入数据是否落入传感器区间。有则返回分级信息
|
|
|
LabRiskPlanLevel labRiskPlanLevel = matchingRiskPlan(subFunction);
|
|
|
- LabRiskPlan labRiskPlan = labRiskPlanMapper.selectLabRiskPlanByRiskPlanId(labRiskPlanLevel.getRiskPlanId());
|
|
|
- labRiskPlanLevel.setFloorId(labRiskPlan.getFloorId());
|
|
|
- labRiskPlanLevel.setTopName(labRiskPlan.getTopName());
|
|
|
-
|
|
|
+ // 云盒传入数据如果没有落入传感器区间 有可能是之前预案关闭
|
|
|
|
|
|
-// LabRiskPlan newRiskPlan = new LabRiskPlan();
|
|
|
-// newRiskPlan.setId(labRiskPlanLevel.getRiskPlanId());
|
|
|
|
|
|
//获取通知配置信息
|
|
|
List<LabNoticeconfig> noticeconfigList = labNoticeconfigMapper.selectLabNoticeconfigList(new LabNoticeconfig());
|
|
|
@@ -1026,17 +1031,6 @@ public class LabRiskPlanServiceImpl extends ServiceImpl<LabRiskPlanMapper, LabRi
|
|
|
labRiskPlanLevel.setVoicebroadcast(labNoticeconfig.getRiskVoice());
|
|
|
labRiskPlanLevel.setInformation(labNoticeconfig.getRiskPhone());
|
|
|
|
|
|
-
|
|
|
-// if (noticeconfigList.size() > 0 && newRiskPlan != null) {
|
|
|
- //语音播报 短信 电话内容
|
|
|
-// LabNoticeconfig labNoticeconfig = noticeconfigList.get(0);
|
|
|
-// newRiskPlan.setVoicebroadcast(labNoticeconfig.getRiskVoice());
|
|
|
-// newRiskPlan.setMessage(labNoticeconfig.getRiskMessage());
|
|
|
-// newRiskPlan.setInformation(labNoticeconfig.getRiskPhone());
|
|
|
- //预案广播通知
|
|
|
-
|
|
|
-// }
|
|
|
-
|
|
|
//将风险预案写入归属组级表里面
|
|
|
LabRiskPlanAbnormalGroup labRiskPlanAbnormalGroup = new LabRiskPlanAbnormalGroup();
|
|
|
labRiskPlanAbnormalGroup.setSubjectId(subFunction.getSubId());
|
|
|
@@ -1045,7 +1039,11 @@ public class LabRiskPlanServiceImpl extends ServiceImpl<LabRiskPlanMapper, LabRi
|
|
|
List<LabRiskPlanAbnormalGroupVO> groupList = labRiskPlanAbnormalGroupMapper.selectLabRiskPlanAbnormalGroupList(labRiskPlanAbnormalGroup);
|
|
|
|
|
|
//如果预案里面配置传感器都达标,需要执行预案对应的硬件操作
|
|
|
- if (labRiskPlanLevel != null) {
|
|
|
+ if (labRiskPlanLevel.getRiskPlanId() != null) {
|
|
|
+ LabRiskPlan labRiskPlan = labRiskPlanMapper.selectLabRiskPlanByRiskPlanId(labRiskPlanLevel.getRiskPlanId());
|
|
|
+ labRiskPlanLevel.setFloorId(labRiskPlan.getFloorId());
|
|
|
+ labRiskPlanLevel.setTopName(labRiskPlan.getTopName());
|
|
|
+
|
|
|
//这里处理,如果是火焰预案,需要redis额外缓存
|
|
|
Optional.ofNullable(subFunction.getFunctionStatuses()).orElseGet(Collections::emptyList).stream().filter(a -> "huoyan".equals(a.getFunNum())).forEach(a -> {
|
|
|
if (redisService.getCacheObject("subjectByHuoyan" + subFunction.getSubId()) == null) {
|
|
|
@@ -1054,15 +1052,18 @@ public class LabRiskPlanServiceImpl extends ServiceImpl<LabRiskPlanMapper, LabRi
|
|
|
});
|
|
|
//有效预案延长一分钟
|
|
|
// if(redisService.getCacheObject("subjectByYa"+subFunction.getSubId())==null){
|
|
|
- redisService.setCacheObject("subjectByYa" + subFunction.getSubId(), subFunction.getSubId(), 3L, TimeUnit.MINUTES);
|
|
|
+// redisService.setCacheObject("subjectByYa" + subFunction.getSubId(), subFunction.getSubId(), 2L, TimeUnit.MINUTES);
|
|
|
+ redisService.setCacheObject("subjectByYa" + subFunction.getSubId(), subFunction.getSubId(), 10L, TimeUnit.SECONDS);
|
|
|
log.info("@@@@@@@@@@@@@@@@@@@@预案延长3分钟@@@@@@@@@@@@@@@@@@@@");
|
|
|
// }
|
|
|
+ Map<SenseType, List<SensorFunctionStatus>> sensorFunctionStatusListMap = hardwareFunctionStatusConfig.getSensorFunctionStatusListMap();
|
|
|
//处理预案下的传感器翻译
|
|
|
JSONArray riskPlanJson = new JSONArray();
|
|
|
for (LabRiskPlanSensorRelation rps : labRiskPlanLevel.getRiskPlanSensorList()) {
|
|
|
//硬件社保统一传入的传感器设备列表
|
|
|
for (SensorFunctionStatus sensorFunc : subFunction.getFunctionStatuses()) {
|
|
|
- if (rps.getFunNum().equals(sensorFunc.getFunNum())) {
|
|
|
+ String funNum1 = sensorFunctionStatusListMap.get(SenseType.getByCode(rps.getSensorType())).get(0).getFunNum();
|
|
|
+ if (funNum1.equals(sensorFunc.getFunNum())) {
|
|
|
getJsonStr(riskPlanJson, sensorFunc);
|
|
|
labRiskPlanLevel.setTopName(labRiskPlanLevel.getTopName() + " " + sensorFunc.getDescribe());
|
|
|
}
|
|
|
@@ -1073,6 +1074,12 @@ public class LabRiskPlanServiceImpl extends ServiceImpl<LabRiskPlanMapper, LabRi
|
|
|
Long groupId = insertPlanAbnormalLog(labRiskPlanLevel, riskPlanJson, groupList, 1L, subFunction);
|
|
|
log.info("####################groupId:" + groupId);
|
|
|
if (groupId != null) {
|
|
|
+ //开始录制视频
|
|
|
+// remoteCameraService.startRecord("192.168.1.14");
|
|
|
+
|
|
|
+ //向前端发送mqtt预案触发提示
|
|
|
+ messageSendService.riskPlanTriggerNotice();
|
|
|
+
|
|
|
log.error("这里记录预警消息记录开始=======================================================");
|
|
|
insertWarnPushMessageByOnePc(labRiskPlanLevel, subFunction.getSubId(), groupId);
|
|
|
log.error("这里记录预警消息记录结束=======================================================");
|
|
|
@@ -1244,6 +1251,12 @@ public class LabRiskPlanServiceImpl extends ServiceImpl<LabRiskPlanMapper, LabRi
|
|
|
newGroupOP.setId(groupVo.getId());
|
|
|
newGroupOP.setStatus(0L);
|
|
|
labRiskPlanAbnormalGroupMapper.updateLabRiskPlanAbnormalGroup(newGroupOP);
|
|
|
+ // todo 操作人和视频结束时候的 url
|
|
|
+ R r = remoteCameraService.stopRecord("192.168.1.14");
|
|
|
+// if (r.getCode().equals(HttpStatus.SUCCESS)){
|
|
|
+//
|
|
|
+// }
|
|
|
+// labRiskPlanAbnormalGroupService.doneRiskExeRecord(groupVo.getId(), "handledPerson", "recordVideo");
|
|
|
//插入预案结束日志
|
|
|
insertPlanAbnormalLogByOver(groupVo, allRiskPlanJson, subFunction);
|
|
|
//向一体机传感器预警
|
|
|
@@ -1391,7 +1404,9 @@ public class LabRiskPlanServiceImpl extends ServiceImpl<LabRiskPlanMapper, LabRi
|
|
|
labRiskPlanAbnormalLog.setRiskStatus(riskStatus);
|
|
|
labRiskPlanAbnormalLog.setSubjectId(subFunction.getSubId());
|
|
|
if (groupList == null || groupList.size() == 0) {
|
|
|
+ // todo
|
|
|
labRiskPlanAbnormalGroup = insertPlanAbnormalGroup(labRiskPlanLevel, subFunction.getSubId());
|
|
|
+// labRiskPlanAbnormalGroupService.addRiskExeRecord(riskPlanName, subjectId, subjectName, riskAttribute, riskReason, riskLevel);
|
|
|
groupId = labRiskPlanAbnormalGroup.getId();
|
|
|
//给风险日志表关联组
|
|
|
labRiskPlanAbnormalLog.setGroupId(labRiskPlanAbnormalGroup.getId());
|
|
|
@@ -1640,25 +1655,29 @@ public class LabRiskPlanServiceImpl extends ServiceImpl<LabRiskPlanMapper, LabRi
|
|
|
List<LabRiskPlanSensorRelation> labRiskPlanSensorRelations = labRiskPlanSensorRelationMapper.selectSensorListBySubId(subFunction.getSubId());
|
|
|
LinkedHashMap<Long, List<LabRiskPlanSensorRelation>> collect = Optional.ofNullable(labRiskPlanSensorRelations).orElseGet(Collections::emptyList).stream().collect(Collectors.groupingBy(LabRiskPlanSensorRelation::getRiskPlanLevelId, LinkedHashMap::new, Collectors.toList()));
|
|
|
List<Long> list = new ArrayList<>();
|
|
|
- collect.forEach((key,value)->{
|
|
|
- Integer count = 0;
|
|
|
+ collect.forEach((key, value) -> {
|
|
|
+ Integer count = 0;
|
|
|
+
|
|
|
+ Map<SenseType, List<SensorFunctionStatus>> sensorFunctionStatusListMap = hardwareFunctionStatusConfig.getSensorFunctionStatusListMap();
|
|
|
//预案级别下传感器列表
|
|
|
for (LabRiskPlanSensorRelation labRiskPlanSensorRelation : value) {
|
|
|
- //云台发送的传感器数据
|
|
|
- for (SensorFunctionStatus functionStatus : subFunction.getFunctionStatuses()) {
|
|
|
- if (functionStatus.getFunNum().equals(labRiskPlanSensorRelation.getFunNum())) {
|
|
|
- Float senseVal = null;
|
|
|
- try {
|
|
|
- senseVal = Float.parseFloat(functionStatus.getVal());
|
|
|
- } catch (NumberFormatException e) {
|
|
|
- return;
|
|
|
- }
|
|
|
- //判断值范围 在范围内存储预案ID和类型名称 (火焰,温度,湿度)
|
|
|
- if ((senseVal >= labRiskPlanSensorRelation.getMinMonitor().floatValue()) && (senseVal <= labRiskPlanSensorRelation.getMaxMonitor().floatValue())) {
|
|
|
- count++;
|
|
|
- }
|
|
|
+ List<SensorFunctionStatus> sensorFunctionStatuses = sensorFunctionStatusListMap.get(SenseType.getByCode(labRiskPlanSensorRelation.getSensorType()));
|
|
|
+ String funNum = sensorFunctionStatuses.get(0).getFunNum();
|
|
|
+ //云台发送的传感器数据
|
|
|
+ for (SensorFunctionStatus functionStatus : subFunction.getFunctionStatuses()) {
|
|
|
+ if (functionStatus.getFunNum().equals(funNum)) {
|
|
|
+ Float senseVal = null;
|
|
|
+ try {
|
|
|
+ senseVal = Float.parseFloat(functionStatus.getVal());
|
|
|
+ } catch (NumberFormatException e) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //判断值范围 在范围内存储预案ID和类型名称 (火焰,温度,湿度)
|
|
|
+ if ((senseVal >= labRiskPlanSensorRelation.getMinMonitor().floatValue()) && (senseVal <= labRiskPlanSensorRelation.getMaxMonitor().floatValue())) {
|
|
|
+ count++;
|
|
|
}
|
|
|
}
|
|
|
+ }
|
|
|
}
|
|
|
if (value.size() == count) {
|
|
|
list.add(key);
|
|
|
@@ -1666,13 +1685,15 @@ public class LabRiskPlanServiceImpl extends ServiceImpl<LabRiskPlanMapper, LabRi
|
|
|
});
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
list.forEach(aLong -> {
|
|
|
- sb.append(aLong);
|
|
|
- sb.append(",");
|
|
|
+ sb.append(aLong+",");
|
|
|
});
|
|
|
//根据预案级别查询预案信息
|
|
|
// LabRiskPlanLevel labRiskPlanLevel = labRiskPlanLevelService.getOne(new LambdaQueryWrapper<LabRiskPlanLevel>().in(LabRiskPlanLevel::getId, sb.substring(0, sb.length() - 1)).orderByDesc(LabRiskPlanLevel::getRiskPlanLevel).last(" limit 1"));
|
|
|
- LabRiskPlanLevel labRiskPlanLevel = labRiskPlanLevelService.queryRiskPlanLevelByLevelIds(sb.substring(0, sb.length() - 1));
|
|
|
- return labRiskPlanLevel;
|
|
|
+ if(StringUtils.isNotBlank(sb.toString())){
|
|
|
+ LabRiskPlanLevel labRiskPlanLevel = labRiskPlanLevelService.queryRiskPlanLevelByLevelIds(sb.substring(0, sb.length() - 1));
|
|
|
+ return labRiskPlanLevel;
|
|
|
+ }
|
|
|
+ return new LabRiskPlanLevel();
|
|
|
|
|
|
// //预案列表循环
|
|
|
// int maxCount = 0;
|
|
|
@@ -1818,11 +1839,11 @@ public class LabRiskPlanServiceImpl extends ServiceImpl<LabRiskPlanMapper, LabRi
|
|
|
if (null != labRiskPlanSubVo.getRiskPlanId()) {
|
|
|
for (LabSubjectVO labSubjectVO : labSubjectVOS.getRecords()) {
|
|
|
List<LabSensorHazardRelation> labSensorHazardRelations = labSensorHazardRelationService.getSensorHazardList(labRiskPlanSubVo.getRiskPlanId(), labSubjectVO.getId());
|
|
|
- List<Long> list = labSensorService.getSensorTypesBySubId(labSubjectVO.getId());
|
|
|
+ List<Integer> list = labSensorService.getSensorTypesBySubId(labSubjectVO.getId());
|
|
|
if (isListEqual(collect, list)) {
|
|
|
labSubjectVO.setSenseState("正常");
|
|
|
} else {
|
|
|
- labSubjectVO.setSenseState("传感器不一致");
|
|
|
+ labSubjectVO.setSenseState("已失效");
|
|
|
}
|
|
|
labSubjectVO.setLabSensorHazardRelations(labSensorHazardRelations);
|
|
|
}
|
|
|
@@ -1925,17 +1946,96 @@ public class LabRiskPlanServiceImpl extends ServiceImpl<LabRiskPlanMapper, LabRi
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public Map<String, Object> riskPlanJoinSub(List<LabRiskPlanSubVo> labRiskPlanSubs) {
|
|
|
-
|
|
|
- Map<SenseType, List<SensorFunctionStatus>> sensorFunctionStatusListMap = hardwareFunctionStatusConfig.getSensorFunctionStatusListMap();
|
|
|
- List<SenseValVO> senseValVOS = hardwareFunctionStatusConfig.getSenseValVOS();
|
|
|
- SenseType byCode = SenseType.getByCode(4);
|
|
|
- List<SensorFunctionStatus> sensorFunctionStatuses = sensorFunctionStatusListMap.get(byCode);
|
|
|
- //当前预案信息根据预案级别分组
|
|
|
- List<LabRiskPlanSensorRelation> labRiskPlanSensorRelations = labRiskPlanSensorRelationMapper.selectList(new LambdaQueryWrapper<LabRiskPlanSensorRelation>().eq(LabRiskPlanSensorRelation::getRiskPlanId, labRiskPlanSubs.get(0).getRiskPlanId()).select());
|
|
|
+ public ResultData riskPlanJoinSub(LabRiskPlanSubVoInfo labRiskPlanSubVoInfo) {
|
|
|
+ List<LabRiskPlanSubVo> labRiskPlanSubs = labRiskPlanSubVoInfo.getLabRiskPlanSubVos();
|
|
|
+ //获取现有预案和选定预案有冲突 预案ids
|
|
|
+ Set<Long> riskplanIds = getConflictRiskplanIds(labRiskPlanSubs);
|
|
|
+ Map<String,String> map = new HashMap<>();
|
|
|
+ if (!riskplanIds.isEmpty()) {
|
|
|
+ Object[] objects = riskplanIds.toArray();
|
|
|
+ //根据预案id和实验室id查询当前用户是否有冲突的预案
|
|
|
+ List<LabRiskPlanjoinsubVO> riskPlanjoinsubList = new ArrayList<>();
|
|
|
+ Optional.ofNullable(labRiskPlanSubs).orElseGet(Collections::emptyList).stream().forEach(a -> {
|
|
|
+ LabRiskPlanjoinsubVO labRiskPlanjoinsubVO = new LabRiskPlanjoinsubVO();
|
|
|
+ labRiskPlanjoinsubVO.setSubjectId(a.getSubjectId());
|
|
|
+ for (int i = 0; i < objects.length; i++) {
|
|
|
+ labRiskPlanjoinsubVO.getRiskPlanIds().add((Long) objects[i]);
|
|
|
+ }
|
|
|
+ if (labRiskPlanjoinsubVO.getRiskPlanIds().size() > 0) {
|
|
|
+ riskPlanjoinsubList.addAll(labRiskPlanjoinsubMapper.getLabRiskPlanjoinsubList(labRiskPlanjoinsubVO));
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ StringBuffer tipsStr = new StringBuffer();
|
|
|
+ StringBuffer riskRelationIdStr = new StringBuffer();
|
|
|
+ if (riskPlanjoinsubList.size() > 0) {
|
|
|
+ //有现有关联实验室与当前绑定实验室冲突
|
|
|
+ Optional.ofNullable(riskPlanjoinsubList).orElseGet(Collections::emptyList).stream().forEach(a -> {
|
|
|
+ if (tipsStr.indexOf(a.getSubName()) == -1) {
|
|
|
+ tipsStr.append(a.getSubName()).append("、");
|
|
|
+ }
|
|
|
+ //收集冲突关联id
|
|
|
+ riskRelationIdStr.append(a.getId()).append(",");
|
|
|
+ });
|
|
|
+
|
|
|
+ if (labRiskPlanSubVoInfo.getYesOrNo() == 1) {
|
|
|
+ //删除预案实验室绑定关系
|
|
|
+ long[] longs = StrUtil.splitToLong(riskRelationIdStr, ",");
|
|
|
+ labRiskPlanjoinsubMapper.deleteLabRiskPlanjoinsubByIds(longs);
|
|
|
+ relationSubject(labRiskPlanSubs);
|
|
|
+ map.put("ifConflict","0");
|
|
|
+ return ResultData.success(map);
|
|
|
+ }
|
|
|
+ map.put("ifConflict","1");
|
|
|
+ map.put("message",tipsStr.substring(1) + "已关联预案与当前预案有传感器数值冲突,是否绑定到当前预案");
|
|
|
+ return ResultData.success(map);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //无冲突预案ids 直接关联实验室
|
|
|
+ relationSubject(labRiskPlanSubs);
|
|
|
+ map.put("ifConflict","0");
|
|
|
+ return ResultData.success(map);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void relationSubject(List<LabRiskPlanSubVo> labRiskPlanSubs) {
|
|
|
+ //直接关联
|
|
|
+ for (LabRiskPlanSubVo labRiskPlanSub : labRiskPlanSubs) {
|
|
|
+ List<LabSensorHazardRelation> labSensorHazardRelations = labRiskPlanSub.getLabSensorHazardRelations();
|
|
|
+ //建立预案和实验室的关联数据
|
|
|
+ LabRiskPlanjoinsub labRiskPlanjoinsub = new LabRiskPlanjoinsub();
|
|
|
+ labRiskPlanjoinsub.setSubjectId(labRiskPlanSub.getSubjectId());
|
|
|
+ labRiskPlanjoinsub.setRiskPlanId(labRiskPlanSub.getRiskPlanId());
|
|
|
+ labRiskPlanjoinsub.setUserId(tokenService.getLoginUser().getSysUser().getUserId());
|
|
|
+ labRiskPlanjoinsub.setCreateBy(tokenService.getLoginUser().getSysUser().getNickName());
|
|
|
+ labRiskPlanjoinsub.setCreateTime(DateUtils.getNowDate());
|
|
|
+ labRiskPlanjoinsubMapper.insertLabRiskPlanjoinsub(labRiskPlanjoinsub);
|
|
|
+ for (LabSensorHazardRelation labSensorHazardRelation : labSensorHazardRelations) {
|
|
|
+ labSensorHazardRelation.setRiskPlanId(labRiskPlanSub.getRiskPlanId());
|
|
|
+ labSensorHazardRelation.setSubjectId(labRiskPlanSub.getSubjectId());
|
|
|
+ }
|
|
|
+ labSensorHazardRelationService.saveBatch(labSensorHazardRelations);
|
|
|
+
|
|
|
+ //插入分配记录日志信息
|
|
|
+ LabRiskPlanDistribution labRiskPlanDistribution = new LabRiskPlanDistribution();
|
|
|
+ labRiskPlanDistribution.setRiskPlanId(labRiskPlanSub.getRiskPlanId());
|
|
|
+ labRiskPlanDistribution.setSubId(labRiskPlanSub.getSubjectId());
|
|
|
+ labRiskPlanDistribution.setGroupDeptId(tokenService.getLoginUser().getSysUser().getDeptId());
|
|
|
+ labRiskPlanDistribution.setUserId(tokenService.getLoginUser().getSysUser().getUserId());
|
|
|
+ labRiskPlanDistribution.setDistrStatus(1L);
|
|
|
+ labRiskPlanDistribution.setCreateTime(DateUtils.getNowDate());
|
|
|
+ labRiskPlanDistribution.setCreateBy(tokenService.getLoginUser().getSysUser().getNickName());
|
|
|
+ labRiskPlanDistributionMapper.insertLabRiskPlanDistribution(labRiskPlanDistribution);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @NotNull
|
|
|
+ private Set<Long> getConflictRiskplanIds(List<LabRiskPlanSubVo> labRiskPlanSubs) {
|
|
|
+ List<LabRiskPlanSensorRelation> labRiskPlanSensorRelations = labRiskPlanSensorRelationMapper.selectLabRiskPlanSensorRelationByRiskPlanIdId(labRiskPlanSubs.get(0).getRiskPlanId());
|
|
|
LinkedHashMap<Long, List<LabRiskPlanSensorRelation>> enterRisk = Optional.ofNullable(labRiskPlanSensorRelations).orElseGet(Collections::emptyList).stream().collect(Collectors.groupingBy(LabRiskPlanSensorRelation::getRiskPlanLevelId, LinkedHashMap::new, Collectors.toList()));
|
|
|
//去除当前预案Id的所有传感器根据预案级别分组
|
|
|
- List<LabRiskPlanSensorRelation> labRiskPlanSensorRelationsRemove = labRiskPlanSensorRelationMapper.selectList(new LambdaQueryWrapper<LabRiskPlanSensorRelation>().ne(LabRiskPlanSensorRelation::getRiskPlanId, labRiskPlanSubs.get(0).getRiskPlanId()));
|
|
|
+ LabRiskPlanSensorRelation labRiskPlanSensorRelation = new LabRiskPlanSensorRelation();
|
|
|
+ labRiskPlanSensorRelation.setRiskPlanId(labRiskPlanSubs.get(0).getRiskPlanId());
|
|
|
+ List<LabRiskPlanSensorRelation> labRiskPlanSensorRelationsRemove = labRiskPlanSensorRelationMapper.selectLabRiskPlanSensorRelationListNoSelf(labRiskPlanSensorRelation);
|
|
|
LinkedHashMap<Long, List<LabRiskPlanSensorRelation>> oldRisk = Optional.ofNullable(labRiskPlanSensorRelationsRemove).orElseGet(Collections::emptyList).stream().collect(Collectors.groupingBy(LabRiskPlanSensorRelation::getRiskPlanLevelId, LinkedHashMap::new, Collectors.toList()));
|
|
|
Set<Long> riskplanIds = new HashSet<>();
|
|
|
//传入预案传感器信息
|
|
|
@@ -1965,80 +2065,40 @@ public class LabRiskPlanServiceImpl extends ServiceImpl<LabRiskPlanMapper, LabRi
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
-
|
|
|
-// for (LabRiskPlanSubVo labRiskPlanSub : labRiskPlanSubs) {
|
|
|
-// List<LabSensorHazardRelation> labSensorHazardRelations = labRiskPlanSub.getLabSensorHazardRelations();
|
|
|
-// //建立预案和实验室的关联数据
|
|
|
-// LabRiskPlanjoinsub labRiskPlanjoinsub = new LabRiskPlanjoinsub();
|
|
|
-// labRiskPlanjoinsub.setSubjectId(labRiskPlanSub.getSubjectId());
|
|
|
-// labRiskPlanjoinsub.setRiskPlanId(labRiskPlanSub.getRiskPlanId());
|
|
|
-// labRiskPlanjoinsub.setUserId(tokenService.getLoginUser().getSysUser().getUserId());
|
|
|
-// labRiskPlanjoinsub.setCreateBy(tokenService.getLoginUser().getSysUser().getNickName());
|
|
|
-// labRiskPlanjoinsub.setCreateTime(DateUtils.getNowDate());
|
|
|
-// labRiskPlanjoinsubMapper.insertLabRiskPlanjoinsub(labRiskPlanjoinsub);
|
|
|
-// for (LabSensorHazardRelation labSensorHazardRelation : labSensorHazardRelations) {
|
|
|
-// labSensorHazardRelation.setRiskPlanId(labRiskPlanSub.getRiskPlanId());
|
|
|
-// labSensorHazardRelation.setSubjectId(labRiskPlanSub.getSubjectId());
|
|
|
-// }
|
|
|
-// labSensorHazardRelationService.saveBatch(labSensorHazardRelations);
|
|
|
-//
|
|
|
-// //插入分配记录日志信息
|
|
|
-// LabRiskPlanDistribution labRiskPlanDistribution = new LabRiskPlanDistribution();
|
|
|
-// labRiskPlanDistribution.setRiskPlanId(labRiskPlanSub.getRiskPlanId());
|
|
|
-// labRiskPlanDistribution.setSubId(labRiskPlanSub.getSubjectId());
|
|
|
-// labRiskPlanDistribution.setGroupDeptId(tokenService.getLoginUser().getSysUser().getDeptId());
|
|
|
-// labRiskPlanDistribution.setUserId(tokenService.getLoginUser().getSysUser().getUserId());
|
|
|
-// labRiskPlanDistribution.setDistrStatus(1L);
|
|
|
-// labRiskPlanDistribution.setCreateTime(DateUtils.getNowDate());
|
|
|
-// labRiskPlanDistribution.setCreateBy(tokenService.getLoginUser().getSysUser().getNickName());
|
|
|
-// labRiskPlanDistributionMapper.insertLabRiskPlanDistribution(labRiskPlanDistribution);
|
|
|
-// }
|
|
|
-
|
|
|
- });
|
|
|
-
|
|
|
- Long[] objects =(Long[]) riskplanIds.toArray();
|
|
|
- //根据预案id和实验室id查询当前用户是否有冲突的预案
|
|
|
- List<LabRiskPlanjoinsubVO> riskPlanjoinsubList = new ArrayList<>();
|
|
|
- Optional.ofNullable(labRiskPlanSubs).orElseGet(Collections::emptyList).stream().forEach(a -> {
|
|
|
- LabRiskPlanjoinsubVO labRiskPlanjoinsubVO = new LabRiskPlanjoinsubVO();
|
|
|
- labRiskPlanjoinsubVO.setSubjectId(a.getSubjectId());
|
|
|
- for (int i = 0; i < objects.length; i++) {
|
|
|
- labRiskPlanjoinsubVO.getRiskPlanIds().add(objects[i]);
|
|
|
- }
|
|
|
- if (labRiskPlanjoinsubVO.getRiskPlanIds().size() > 0) {
|
|
|
- riskPlanjoinsubList.addAll(labRiskPlanjoinsubMapper.getLabRiskPlanjoinsubList(labRiskPlanjoinsubVO));
|
|
|
- }
|
|
|
});
|
|
|
- Map<String, Object> resultStr = new HashMap<>();
|
|
|
- StringBuffer tipsStr = new StringBuffer();
|
|
|
- if (riskPlanjoinsubList.size() > 0) {
|
|
|
- Optional.ofNullable(riskPlanjoinsubList).orElseGet(Collections::emptyList).stream().forEach(a -> {
|
|
|
- tipsStr.append("," + a.getSubName());
|
|
|
- });
|
|
|
- resultStr.put("tipsStr", tipsStr.substring(1) + "实验室已经关联了预案,是否绑定到当前预案");
|
|
|
- resultStr.put("riskPlanjoinsubList", riskPlanjoinsubList);
|
|
|
- resultStr.put("repeat", true);
|
|
|
- } else {
|
|
|
- resultStr.put("tipsStr", "");
|
|
|
- resultStr.put("riskPlanjoinsubList", "");
|
|
|
- resultStr.put("repeat", false);
|
|
|
- }
|
|
|
- return resultStr;
|
|
|
+ return riskplanIds;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<LabBuildFloorLayoutVo> selectTriggerInfo() {
|
|
|
- List<LabBuildFloorLayoutVo> labBuilder = new ArrayList<>();
|
|
|
+ public List<LabBuildFloorLayoutDTO> selectTriggerInfo() {
|
|
|
+ List<LabBuildFloorLayoutDTO> labBuilder = new ArrayList<>();
|
|
|
LabRiskPlanAbnormalGroup labRiskPlanAbnormalGroup = new LabRiskPlanAbnormalGroup();
|
|
|
labRiskPlanAbnormalGroup.setStatus(1L);
|
|
|
- List <LabRiskPlanAbnormalGroupVO> groupList = labRiskPlanAbnormalGroupMapper.selectLabRiskPlanAbnormalGroupList(labRiskPlanAbnormalGroup);
|
|
|
+ List<LabRiskPlanAbnormalGroupVO> groupList = labRiskPlanAbnormalGroupMapper.selectLabRiskPlanAbnormalGroupList(labRiskPlanAbnormalGroup);
|
|
|
for (LabRiskPlanAbnormalGroupVO labRiskPlanAbnormalGroupVO : groupList) {
|
|
|
- LabBuildFloorLayoutVo labBuildFloorLayoutVo = labBuildFloorLayoutMapper.selectBuildInfoBySubId(labRiskPlanAbnormalGroupVO.getSubjectId());
|
|
|
- labBuilder.add(labBuildFloorLayoutVo);
|
|
|
+ LabBuildFloorLayoutDTO labBuildFloorLayoutDTO = labBuildFloorLayoutMapper.selectBuildInfoBySubIdAndUser(labRiskPlanAbnormalGroupVO.getSubjectId(), tokenService.getLoginUser().getUserid());
|
|
|
+ if (!Objects.isNull(labBuildFloorLayoutDTO)){
|
|
|
+ labBuildFloorLayoutDTO.setRiskPlanId(labRiskPlanAbnormalGroupVO.getRiskPlanId());
|
|
|
+ labBuilder.add(labBuildFloorLayoutDTO);
|
|
|
+ }
|
|
|
}
|
|
|
return labBuilder;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public Integer checkEnterRiskPlan(Long riskPlanId) {
|
|
|
+ LabRiskPlan labRiskPlan = labRiskPlanMapper.selectLabRiskPlanById(riskPlanId);
|
|
|
+ return labRiskPlan.getIfCheck();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void writerEnterRiskPlan(Long riskPlanId,Integer ifcheck) {
|
|
|
+ LabRiskPlan labRiskPlan = new LabRiskPlan();
|
|
|
+ labRiskPlan.setId(riskPlanId);
|
|
|
+ labRiskPlan.setIfCheck(ifcheck);
|
|
|
+ labRiskPlanMapper.updateById(labRiskPlan);
|
|
|
+ }
|
|
|
+
|
|
|
public static boolean isListEqual(List l0, List l1) {
|
|
|
boolean flag = false;
|
|
|
if (l0 == null && l1 == null) return true;
|