Commit 411e7519 authored by 高建强's avatar 高建强

item:重点设备预案流程优化,状态修改

parent 899d71c1
...@@ -8,8 +8,11 @@ import com.yeejoin.amos.fas.business.service.intfc.IRuleRunningSnapshotService; ...@@ -8,8 +8,11 @@ import com.yeejoin.amos.fas.business.service.intfc.IRuleRunningSnapshotService;
import com.yeejoin.amos.fas.config.Permission; import com.yeejoin.amos.fas.config.Permission;
import com.yeejoin.amos.fas.core.common.request.CommonPageable; import com.yeejoin.amos.fas.core.common.request.CommonPageable;
import com.yeejoin.amos.fas.core.common.request.CommonRequest; import com.yeejoin.amos.fas.core.common.request.CommonRequest;
import com.yeejoin.amos.fas.core.enums.NumberEnum;
import com.yeejoin.amos.fas.core.util.CommonResponse; import com.yeejoin.amos.fas.core.util.CommonResponse;
import com.yeejoin.amos.fas.core.util.CommonResponseUtil; import com.yeejoin.amos.fas.core.util.CommonResponseUtil;
import com.yeejoin.amos.fas.core.util.DateUtil;
import com.yeejoin.amos.fas.dao.entity.Equipment;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
...@@ -22,10 +25,7 @@ import org.springframework.util.CollectionUtils; ...@@ -22,10 +25,7 @@ import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.context.RequestContext; import org.typroject.tyboot.core.foundation.context.RequestContext;
import java.util.HashMap; import java.util.*;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@RestController @RestController
@RequestMapping(value = "/api/timeline") @RequestMapping(value = "/api/timeline")
...@@ -94,7 +94,15 @@ public class TimeLineController extends BaseController{ ...@@ -94,7 +94,15 @@ public class TimeLineController extends BaseController{
Map<String,String> map = new HashMap<>(); Map<String,String> map = new HashMap<>();
redisTemplate.delete(RiskSourceServiceImpl.cacheKeyForCanBeRunning()); redisTemplate.delete(RiskSourceServiceImpl.cacheKeyForCanBeRunning());
iContingencyInstance.fire(batchNo,stepCode,"",buttonCode,confirm,stepState); Optional<Equipment> equipment = iContingencyInstance.fire(batchNo,stepCode,"",buttonCode,confirm,stepState);
// 结束预案,更新设备重点设备参数
equipment.ifPresent(equip -> {
equip.setStartTime(DateUtil.getDateNow());
equip.setEndTime(null);
equip.setReserveSource(NumberEnum.ONE.getValue());
equip.setStatus(NumberEnum.ONE.getValue());
equipmentService.save(equip);
});
return CommonResponseUtil.success("SUCCESS"); return CommonResponseUtil.success("SUCCESS");
} }
......
package com.yeejoin.amos.fas.business.service.impl; package com.yeejoin.amos.fas.business.service.impl;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import com.yeejoin.amos.fas.business.service.intfc.IEquipmentService;
import com.yeejoin.amos.fas.core.enums.NumberEnum;
import com.yeejoin.amos.fas.core.util.DateUtil;
import org.apache.commons.lang3.ArrayUtils;
import org.codehaus.jackson.map.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.web.client.RestTemplate;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.component.rule.RuleTrigger; import com.yeejoin.amos.component.rule.RuleTrigger;
import com.yeejoin.amos.fas.business.action.ContingencyAction; import com.yeejoin.amos.fas.business.action.ContingencyAction;
...@@ -34,11 +12,26 @@ import com.yeejoin.amos.fas.business.dao.mapper.ImpAndFireEquipMapper; ...@@ -34,11 +12,26 @@ import com.yeejoin.amos.fas.business.dao.mapper.ImpAndFireEquipMapper;
import com.yeejoin.amos.fas.business.dao.repository.IContingencyOriginalDataDao; import com.yeejoin.amos.fas.business.dao.repository.IContingencyOriginalDataDao;
import com.yeejoin.amos.fas.business.dao.repository.IContingencyPlanInstanceRepository; import com.yeejoin.amos.fas.business.dao.repository.IContingencyPlanInstanceRepository;
import com.yeejoin.amos.fas.business.service.intfc.IContingencyInstance; import com.yeejoin.amos.fas.business.service.intfc.IContingencyInstance;
import com.yeejoin.amos.fas.business.service.intfc.IEquipmentService;
import com.yeejoin.amos.fas.business.service.model.Operate; import com.yeejoin.amos.fas.business.service.model.Operate;
import com.yeejoin.amos.fas.business.service.model.OperateGroup; import com.yeejoin.amos.fas.business.service.model.OperateGroup;
import com.yeejoin.amos.fas.dao.entity.ContingencyOriginalData; import com.yeejoin.amos.fas.dao.entity.ContingencyOriginalData;
import com.yeejoin.amos.fas.dao.entity.ContingencyPlanInstance; import com.yeejoin.amos.fas.dao.entity.ContingencyPlanInstance;
import com.yeejoin.amos.fas.dao.entity.Equipment; import com.yeejoin.amos.fas.dao.entity.Equipment;
import org.apache.commons.lang3.ArrayUtils;
import org.codehaus.jackson.map.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.web.client.RestTemplate;
import java.util.*;
@Service @Service
public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPlanInstance, String>*/ implements IContingencyInstance { public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPlanInstance, String>*/ implements IContingencyInstance {
...@@ -72,7 +65,6 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla ...@@ -72,7 +65,6 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla
private String stationName; private String stationName;
private static Map<String, String> stepMap = new HashMap<>(); private static Map<String, String> stepMap = new HashMap<>();
@Autowired @Autowired
...@@ -90,6 +82,7 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla ...@@ -90,6 +82,7 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla
@Autowired @Autowired
private ContingencyLogPublisher contingencyLogPublisher; private ContingencyLogPublisher contingencyLogPublisher;
/** /**
* 创建预案执行记录 * 创建预案执行记录
* *
...@@ -128,13 +121,14 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla ...@@ -128,13 +121,14 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla
} }
public void fire(String batchNo, String stepCode, String contingencyPlanId, String buttonCode, String buttonState, String stepStateOnbutton) throws Exception { public Optional<Equipment> fire(String batchNo, String stepCode, String contingencyPlanId, String buttonCode, String buttonState, String stepStateOnbutton) throws Exception {
//火灾误报 //火灾误报
ContingencyOriginalData contingencyOriginalData = iContingencyOriginalDataDao.findByBatchNo(batchNo); ContingencyOriginalData contingencyOriginalData = iContingencyOriginalDataDao.findByBatchNo(batchNo);
String stepKey = batchNo + "_" + stepCode; String stepKey = batchNo + "_" + stepCode;
if (stepMap.get(stepKey) == null) if (stepMap.get(stepKey) == null)
stepMap.put(stepKey, ""); stepMap.put(stepKey, "");
Equipment equipment;
if (contingencyOriginalData != null) { if (contingencyOriginalData != null) {
log.info("数据库中的stepcode:" + contingencyOriginalData.getStep()); log.info("数据库中的stepcode:" + contingencyOriginalData.getStep());
contingencyOriginalData.setConfirm(buttonState); contingencyOriginalData.setConfirm(buttonState);
...@@ -147,18 +141,15 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla ...@@ -147,18 +141,15 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla
&& stepCode.equals(contingencyOriginalData.getStep())) && stepCode.equals(contingencyOriginalData.getStep()))
contingencyOriginalData.setStepState(contingencyOriginalData.getStepState() + stepStateOnbutton); contingencyOriginalData.setStepState(contingencyOriginalData.getStepState() + stepStateOnbutton);
//请求中的步骤小于以保存的步骤 //请求中的步骤小于以保存的步骤
if (Integer.parseInt(stepCode) < Integer.parseInt(contingencyOriginalData.getStep())) { if (Integer.parseInt(stepCode) < Integer.parseInt(contingencyOriginalData.getStep())) {
contingencyOriginalData.setRunstep(true); contingencyOriginalData.setRunstep(true);
} }
if (Integer.parseInt(stepCode) > Integer.parseInt(contingencyOriginalData.getStep())) { if (Integer.parseInt(stepCode) > Integer.parseInt(contingencyOriginalData.getStep())) {
contingencyOriginalData.setStepState(stepStateOnbutton); contingencyOriginalData.setStepState(stepStateOnbutton);
} }
iContingencyOriginalDataDao.updateByButton( iContingencyOriginalDataDao.updateByButton(
contingencyOriginalData.getConfirm(), contingencyOriginalData.getConfirm(),
contingencyOriginalData.getRunstep(), contingencyOriginalData.getRunstep(),
...@@ -180,7 +171,7 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla ...@@ -180,7 +171,7 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla
// contingencyRo.setStep(stepCode); // contingencyRo.setStep(stepCode);
log.info("stepstate:" + contingencyRo.getStepState()); log.info("stepstate:" + contingencyRo.getStepState());
log.info("stepCode:" + stepCode); log.info("stepCode:" + stepCode);
Equipment equipment = impAndFireEquipMapper.queryImpEqumtByFireEquipmt(Long.parseLong(contingencyRo.getFireEquipmentId())); equipment = impAndFireEquipMapper.queryImpEqumtByFireEquipmt(Long.parseLong(contingencyRo.getFireEquipmentId()));
if (equipment != null) { if (equipment != null) {
// 获取重点设备胚胎指标 // 获取重点设备胚胎指标
// 获取遥信指标 // 获取遥信指标
...@@ -202,16 +193,11 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla ...@@ -202,16 +193,11 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla
ruleTrigger.publish(contingencyRo, equipment.getReservePlan(), ArrayUtils.toArray(equipment.getName())); ruleTrigger.publish(contingencyRo, equipment.getReservePlan(), ArrayUtils.toArray(equipment.getName()));
publisherPlanLog(stepCode, buttonCode, batchNo); publisherPlanLog(stepCode, buttonCode, batchNo);
// 结束预案,更新设备重点设备参数
equipment.setEndTime(DateUtil.getDateNow());
equipment.setReserveSource(NumberEnum.ZERO.getValue());
equipment.setStatus(NumberEnum.ZERO.getValue());
equipmentService.save(equipment);
} }
} else { } else {
throw new Exception("数据异常,请联系管理员."); throw new Exception("数据异常,请联系管理员.");
} }
return Optional.ofNullable(equipment);
} }
private void publisherPlanLog(String stepCode, String buttonCode, String batchNo) { private void publisherPlanLog(String stepCode, String buttonCode, String batchNo) {
...@@ -226,7 +212,7 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla ...@@ -226,7 +212,7 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla
json.put("msgType", "message"); json.put("msgType", "message");
json.put("msgContext", msgContext); json.put("msgContext", msgContext);
event.setMsgBody(json.toJSONString()); event.setMsgBody(json.toJSONString());
String topic = String.format("/%s/%s/%s", serviceName, stationName,"plan"); String topic = String.format("/%s/%s/%s", serviceName, stationName, "plan");
event.setTopic(topic); event.setTopic(topic);
event.setMsgType("clickEvent"); event.setMsgType("clickEvent");
event.setContingency(batchNo); event.setContingency(batchNo);
...@@ -238,9 +224,9 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla ...@@ -238,9 +224,9 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla
ObjectMapper objectMapper = new ObjectMapper(); ObjectMapper objectMapper = new ObjectMapper();
Optional<ContingencyPlanInstance> contingencyPlanInstance1 = repository.findById(contingencyPlanId); Optional<ContingencyPlanInstance> contingencyPlanInstance1 = repository.findById(contingencyPlanId);
ContingencyPlanInstance contingencyPlanInstance=contingencyPlanInstance1.get(); ContingencyPlanInstance contingencyPlanInstance = contingencyPlanInstance1.get();
if(contingencyPlanInstance1.isPresent()){ if (contingencyPlanInstance1.isPresent()) {
if (contingencyPlanInstance != null && "OPERATE".equals(contingencyPlanInstance.getRecordType())) { if (contingencyPlanInstance != null && "OPERATE".equals(contingencyPlanInstance.getRecordType())) {
String operateJson = contingencyPlanInstance.getContent(); String operateJson = contingencyPlanInstance.getContent();
OperateGroup operateGroup = objectMapper.readValue(operateJson, OperateGroup.class); OperateGroup operateGroup = objectMapper.readValue(operateJson, OperateGroup.class);
...@@ -249,8 +235,8 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla ...@@ -249,8 +235,8 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla
if (!CollectionUtils.isEmpty(operates)) { if (!CollectionUtils.isEmpty(operates)) {
for (Operate operate : operates) { for (Operate operate : operates) {
if (code.equals(operate.getCode()) && ("executed".equals(operate.getState()) || "disable".equals(operate.getState()))){ if (code.equals(operate.getCode()) && ("executed".equals(operate.getState()) || "disable".equals(operate.getState()))) {
if("FIRE_CANCEL".equals(code) || "END_EMERGENCY".equals(code)){ if ("FIRE_CANCEL".equals(code) || "END_EMERGENCY".equals(code)) {
redisTemplate.delete(RiskSourceServiceImpl.cacheKeyForCanBeRunning()); redisTemplate.delete(RiskSourceServiceImpl.cacheKeyForCanBeRunning());
} }
throw new Exception("请勿重复操作."); throw new Exception("请勿重复操作.");
...@@ -260,7 +246,7 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla ...@@ -260,7 +246,7 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla
if ("CONFIRM".equals(buttonState)) { if ("CONFIRM".equals(buttonState)) {
if (code.equals(operate.getCode())) { if (code.equals(operate.getCode())) {
operate.setState("executed"); operate.setState("executed");
if("FIRE_CANCEL".equals(code) || "END_EMERGENCY".equals(code)) if ("FIRE_CANCEL".equals(code) || "END_EMERGENCY".equals(code))
redisTemplate.delete(RiskSourceServiceImpl.cacheKeyForCanBeRunning()); redisTemplate.delete(RiskSourceServiceImpl.cacheKeyForCanBeRunning());
} else { } else {
operate.setState("disable"); operate.setState("disable");
...@@ -283,9 +269,9 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla ...@@ -283,9 +269,9 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla
public void setButtonWait(String batchNo, String contingencyPlanId, String buttonState) throws Exception { public void setButtonWait(String batchNo, String contingencyPlanId, String buttonState) throws Exception {
ObjectMapper objectMapper = new ObjectMapper(); ObjectMapper objectMapper = new ObjectMapper();
Optional<ContingencyPlanInstance> contingencyPlanInstance1 = repository.findById(contingencyPlanId); Optional<ContingencyPlanInstance> contingencyPlanInstance1 = repository.findById(contingencyPlanId);
ContingencyPlanInstance contingencyPlanInstance=null; ContingencyPlanInstance contingencyPlanInstance = null;
if(contingencyPlanInstance1.isPresent()){ if (contingencyPlanInstance1.isPresent()) {
contingencyPlanInstance=contingencyPlanInstance1.get(); contingencyPlanInstance = contingencyPlanInstance1.get();
} }
if (contingencyPlanInstance != null && "OPERATE".equals(contingencyPlanInstance.getRecordType())) { if (contingencyPlanInstance != null && "OPERATE".equals(contingencyPlanInstance.getRecordType())) {
...@@ -313,6 +299,6 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla ...@@ -313,6 +299,6 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla
@Override @Override
public void updateStep(String step, String batchNo) { public void updateStep(String step, String batchNo) {
iContingencyOriginalDataDao.updateByButtonStep(step,batchNo); iContingencyOriginalDataDao.updateByButtonStep(step, batchNo);
} }
} }
package com.yeejoin.amos.fas.business.service.intfc; package com.yeejoin.amos.fas.business.service.intfc;
import java.util.List; import java.util.List;
import java.util.Optional;
import com.yeejoin.amos.fas.dao.entity.ContingencyOriginalData;
import com.yeejoin.amos.fas.dao.entity.ContingencyPlanInstance; import com.yeejoin.amos.fas.dao.entity.ContingencyPlanInstance;
import com.yeejoin.amos.fas.dao.entity.Equipment;
public interface IContingencyInstance { public interface IContingencyInstance {
...@@ -17,7 +20,7 @@ public interface IContingencyInstance { ...@@ -17,7 +20,7 @@ public interface IContingencyInstance {
void setButtonWait(String batchNo,String contingencyPlanId,String buttonState) throws Exception; void setButtonWait(String batchNo,String contingencyPlanId,String buttonState) throws Exception;
void fire(String batchNo,String stepCode, String contingencyPlanId, String buttonCode,String buttonState,String stepStateOnbutton) throws Exception; Optional<Equipment> fire(String batchNo, String stepCode, String contingencyPlanId, String buttonCode, String buttonState, String stepStateOnbutton) throws Exception;
void updateStep(String step, String batchNo); void updateStep(String step, String batchNo);
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment