Przeglądaj źródła

一键灭火逻辑修改

hanzhiwei 3 lat temu
rodzic
commit
dd4d9659cf

+ 32 - 18
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabRiskPlanController.java

@@ -1,7 +1,10 @@
 package com.zd.laboratory.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.zd.algorithm.api.fire.RemoteFireDeviceService;
+import com.zd.algorithm.api.fire.entity.vo.HardwareFireDeviceVO;
 import com.zd.algorithm.api.rfid.domain.entity.HardwareRfid;
 import com.zd.common.core.annotation.Log;
 import com.zd.common.core.annotation.PreAuthorize;
@@ -11,7 +14,7 @@ import com.zd.common.core.utils.ExcelUtil;
 import com.zd.common.core.utils.StringUtils;
 import com.zd.common.core.web.controller.BaseController;
 import com.zd.laboratory.api.constant.RiskPlanConstants;
-import com.zd.laboratory.api.entity.BasicFunctionStatus;
+import com.zd.laboratory.api.entity.OneClickFireDTO;
 import com.zd.laboratory.api.entity.SensorFunctionStatus;
 import com.zd.laboratory.api.vo.SubFunction;
 import com.zd.laboratory.domain.LabRiskPlan;
@@ -19,7 +22,6 @@ 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.dto.OneClickFireDTO;
 import com.zd.laboratory.domain.vo.LabRiskPlanSubVo;
 import com.zd.laboratory.domain.vo.LabRiskPlanSubVoInfo;
 import com.zd.laboratory.domain.vo.LabSubjectVO;
@@ -29,6 +31,8 @@ import com.zd.laboratory.service.ILabHardwareService;
 import com.zd.laboratory.service.ILabRiskPlanAbnormalLogService;
 import com.zd.laboratory.service.ILabRiskPlanService;
 import com.zd.laboratory.service.ILabSubjectService;
+import com.zd.model.constant.HttpStatus;
+import com.zd.model.domain.R;
 import com.zd.model.domain.ResultData;
 import com.zd.model.domain.per.PerFun;
 import com.zd.model.domain.per.PerPrefix;
@@ -69,6 +73,9 @@ public class LabRiskPlanController extends BaseController {
     @Autowired
     private LabRiskPlanjoinsubMapper LabRiskPlanjoinsubMapper;
 
+    @Autowired
+    private RemoteFireDeviceService remoteFireDeviceService;
+
 
     /**
      * 查询风险预案列表
@@ -243,25 +250,32 @@ public class LabRiskPlanController extends BaseController {
     @Log(title = "一件灭火触发火焰预警")
     @PostMapping("/oneClickFire")
     public ResultData oneClickFire(@RequestBody OneClickFireDTO oneClickFireDTO){
-        logger.info("一件灭火触发火焰预警,入参={}",oneClickFireDTO.toString());
-        if (StringUtils.isNotBlank(oneClickFireDTO.getHardwareNum())) {
+        logger.info("一件灭火触发火焰预警,入参={}", JSON.toJSONString(oneClickFireDTO));
+        if (!Objects.isNull(oneClickFireDTO)) {
             if (oneClickFireDTO.getIfFire() == 1) {
-                Long subId = labHardwareService.querySubIdByNum(oneClickFireDTO.getHardwareNum());
-                SubFunction subFunction = new SubFunction();
-                List<BasicFunctionStatus> basicFunctionStatuses = new ArrayList<>();
-                BasicFunctionStatus basicFunctionStatus = new BasicFunctionStatus();
-                basicFunctionStatus.setFuncName("火焰");
-                basicFunctionStatus.setHardwareNum(oneClickFireDTO.getHardwareNum());
-                basicFunctionStatus.setFunNum("huoyan");
-                basicFunctionStatus.setDescribe("火焰");
-                basicFunctionStatuses.add(basicFunctionStatus);
-                subFunction.setSubId(subId);
-                subFunction.setFunctionStatuses(basicFunctionStatuses);
-                triggerRiskPlan(subFunction);
-                return ResultData.success();
+                R deviceByCode = remoteFireDeviceService.getDeviceByCode(oneClickFireDTO.getDeviceCode());
+                if (deviceByCode.getCode()!=(HttpStatus.SUCCESS)){
+                    return ResultData.fail("查询一键灭火设备信息失败!");
+                }
+                HardwareFireDeviceVO hardwareFireDevice = (HardwareFireDeviceVO) deviceByCode.getData();
+                if (hardwareFireDevice.getSubjectId() != null){
+                    SubFunction subFunction = new SubFunction();
+                    List<SensorFunctionStatus> sensorFunctionStatuses = new ArrayList<>();
+                    SensorFunctionStatus sensorFunctionStatus = new SensorFunctionStatus();
+                    sensorFunctionStatus.setVal("1");
+                    sensorFunctionStatus.setFunNum("火焰");
+                    sensorFunctionStatus.setHardwareNum(oneClickFireDTO.getDeviceCode());
+                    sensorFunctionStatus.setDescribe("火焰");
+                    sensorFunctionStatuses.add(sensorFunctionStatus);
+                    subFunction.setSubId(hardwareFireDevice.getSubjectId());
+                    subFunction.setFunctionStatuses(sensorFunctionStatuses);
+                    triggerRiskPlan(subFunction);
+                    return ResultData.success();
+                }
+                return ResultData.fail("查询一键灭火实验室信息失败!");
             }
         }
-        return ResultData.fail("设备编号为空!");
+        return ResultData.fail("传入参数为空!");
     }
 
     /**

+ 0 - 20
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/dto/OneClickFireDTO.java

@@ -1,20 +0,0 @@
-package com.zd.laboratory.domain.dto;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-/**
- * @Description 一键灭火传输类
- * @Author hzw
- * @Date 2022/12/12 16:52
- * @Version 2.0
- */
-@Data
-public class OneClickFireDTO {
-
-    @ApiModelProperty("硬件编号")
-    private String hardwareNum;
-
-    @ApiModelProperty("是否火灾 0否 1是")
-    private Integer ifFire;
-}