|
|
@@ -38,6 +38,7 @@ import com.zd.model.domain.per.PerFun;
|
|
|
import com.zd.model.domain.per.PerPrefix;
|
|
|
import com.zd.model.page.TableDataInfo;
|
|
|
import io.swagger.annotations.Api;
|
|
|
+import org.jetbrains.annotations.NotNull;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
@@ -250,33 +251,58 @@ public class LabRiskPlanController extends BaseController {
|
|
|
@Log(title = "一件灭火触发火焰预警")
|
|
|
@PostMapping("/oneClickFire")
|
|
|
public ResultData oneClickFire(@RequestBody OneClickFireDTO oneClickFireDTO){
|
|
|
- if (!Objects.isNull(oneClickFireDTO)) {
|
|
|
- logger.info("一件灭火触发火焰预警,入参={}", JSON.toJSONString(oneClickFireDTO));
|
|
|
- if (oneClickFireDTO.getIfFire() == 1) {
|
|
|
- R deviceByCode = remoteFireDeviceService.getDeviceByCode(oneClickFireDTO.getDeviceCode());
|
|
|
- if (deviceByCode.getCode()!=(HttpStatus.SUCCESS)){
|
|
|
- return ResultData.fail("查询一键灭火设备信息失败!");
|
|
|
- }
|
|
|
- HardwareFireDeviceVO hardwareFireDeviceVO = JSON.parseObject(JSON.toJSONString(deviceByCode.getData()), HardwareFireDeviceVO.class);
|
|
|
- if (hardwareFireDeviceVO.getSubjectId() != null){
|
|
|
- SubFunction subFunction = new SubFunction();
|
|
|
- List<SensorFunctionStatus> sensorFunctionStatuses = new ArrayList<>();
|
|
|
- SensorFunctionStatus sensorFunctionStatus = new SensorFunctionStatus();
|
|
|
- sensorFunctionStatus.setVal("1");
|
|
|
- sensorFunctionStatus.setFunNum("huoyan");
|
|
|
- sensorFunctionStatus.setHardwareNum(oneClickFireDTO.getDeviceCode());
|
|
|
- sensorFunctionStatus.setDescribe("火焰");
|
|
|
- sensorFunctionStatus.setAutomanual(oneClickFireDTO.getAutomanual());
|
|
|
- sensorFunctionStatuses.add(sensorFunctionStatus);
|
|
|
- subFunction.setSubId(hardwareFireDeviceVO.getSubjectId());
|
|
|
- subFunction.setFunctionStatuses(sensorFunctionStatuses);
|
|
|
- triggerRiskPlan(subFunction);
|
|
|
+ if (Objects.isNull(oneClickFireDTO)) {
|
|
|
+ return ResultData.fail("传入参数为空!");
|
|
|
+ }
|
|
|
+ logger.info("一键灭火触发火焰预警,入参={}", JSON.toJSONString(oneClickFireDTO));
|
|
|
+ if (oneClickFireDTO.getIfFire() == 1) {
|
|
|
+ R deviceByCode = remoteFireDeviceService.getDeviceByCode(oneClickFireDTO.getDeviceCode());
|
|
|
+ if (deviceByCode.getCode()!=(HttpStatus.SUCCESS)){
|
|
|
+ return ResultData.fail("查询一键灭火实验室信息失败!");
|
|
|
+ }
|
|
|
+ HardwareFireDeviceVO hardwareFireDeviceVO = JSON.parseObject(JSON.toJSONString(deviceByCode.getData()), HardwareFireDeviceVO.class);
|
|
|
+ if (hardwareFireDeviceVO.getSubjectId() != null){
|
|
|
+ //自动或手动
|
|
|
+ if(oneClickFireDTO.getAutomanual() == 0 || oneClickFireDTO.getAutomanual() == 1){
|
|
|
+ Boolean b = labRiskPlanAbnormalLogService.queryIfTriggerRiskPlan(hardwareFireDeviceVO.getSubjectId());
|
|
|
+ //未触发火焰预案,则新触发火焰预案
|
|
|
+ if (!b) {
|
|
|
+ return oneClickFireTriggerRiskPlan(oneClickFireDTO, hardwareFireDeviceVO);
|
|
|
+ }
|
|
|
+ //已触发火焰预案,则查询日志是否已经写入,未写入则写入日志,已写入则不做处理
|
|
|
+ labRiskPlanService.inserRiskLog(hardwareFireDeviceVO.getSubjectId(),oneClickFireDTO.getAutomanual());
|
|
|
return ResultData.success();
|
|
|
+ }else {
|
|
|
+ //预警,直接触发预案, ,不触发预案一键灭火日志写入
|
|
|
+ return oneClickFireTriggerRiskPlan(oneClickFireDTO, hardwareFireDeviceVO);
|
|
|
}
|
|
|
- return ResultData.fail("查询一键灭火实验室信息失败!");
|
|
|
}
|
|
|
+ return ResultData.fail("未查询到一键灭火实验室信息!");
|
|
|
}
|
|
|
- return ResultData.fail("传入参数为空!");
|
|
|
+ return ResultData.fail("当前传入非火焰预案!");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 一键灭火触发预案
|
|
|
+ * @param oneClickFireDTO
|
|
|
+ * @param hardwareFireDeviceVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @NotNull
|
|
|
+ private ResultData<Object> oneClickFireTriggerRiskPlan(OneClickFireDTO oneClickFireDTO, HardwareFireDeviceVO hardwareFireDeviceVO) {
|
|
|
+ SubFunction subFunction = new SubFunction();
|
|
|
+ List<SensorFunctionStatus> sensorFunctionStatuses = new ArrayList<>();
|
|
|
+ SensorFunctionStatus sensorFunctionStatus = new SensorFunctionStatus();
|
|
|
+ sensorFunctionStatus.setVal("1");
|
|
|
+ sensorFunctionStatus.setFunNum("huoyan");
|
|
|
+ sensorFunctionStatus.setHardwareNum(oneClickFireDTO.getDeviceCode());
|
|
|
+ sensorFunctionStatus.setDescribe("火焰");
|
|
|
+ sensorFunctionStatus.setAutomanual(oneClickFireDTO.getAutomanual());
|
|
|
+ sensorFunctionStatuses.add(sensorFunctionStatus);
|
|
|
+ subFunction.setSubId(hardwareFireDeviceVO.getSubjectId());
|
|
|
+ subFunction.setFunctionStatuses(sensorFunctionStatuses);
|
|
|
+ triggerRiskPlan(subFunction);
|
|
|
+ return ResultData.success();
|
|
|
}
|
|
|
|
|
|
/**
|