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

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

parent 899d71c1
......@@ -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.core.common.request.CommonPageable;
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.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.ApiOperation;
import io.swagger.annotations.ApiParam;
......@@ -22,10 +25,7 @@ import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.*;
@RestController
@RequestMapping(value = "/api/timeline")
......@@ -94,7 +94,15 @@ public class TimeLineController extends BaseController{
Map<String,String> map = new HashMap<>();
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");
}
......
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.yeejoin.amos.component.rule.RuleTrigger;
import com.yeejoin.amos.fas.business.action.ContingencyAction;
......@@ -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.IContingencyPlanInstanceRepository;
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.OperateGroup;
import com.yeejoin.amos.fas.dao.entity.ContingencyOriginalData;
import com.yeejoin.amos.fas.dao.entity.ContingencyPlanInstance;
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
public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPlanInstance, String>*/ implements IContingencyInstance {
......@@ -72,7 +65,6 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla
private String stationName;
private static Map<String, String> stepMap = new HashMap<>();
@Autowired
......@@ -90,6 +82,7 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla
@Autowired
private ContingencyLogPublisher contingencyLogPublisher;
/**
* 创建预案执行记录
*
......@@ -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);
String stepKey = batchNo + "_" + stepCode;
if (stepMap.get(stepKey) == null)
stepMap.put(stepKey, "");
Equipment equipment;
if (contingencyOriginalData != null) {
log.info("数据库中的stepcode:" + contingencyOriginalData.getStep());
contingencyOriginalData.setConfirm(buttonState);
......@@ -147,18 +141,15 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla
&& stepCode.equals(contingencyOriginalData.getStep()))
contingencyOriginalData.setStepState(contingencyOriginalData.getStepState() + stepStateOnbutton);
//请求中的步骤小于以保存的步骤
if (Integer.parseInt(stepCode) < Integer.parseInt(contingencyOriginalData.getStep())) {
contingencyOriginalData.setRunstep(true);
}
if (Integer.parseInt(stepCode) > Integer.parseInt(contingencyOriginalData.getStep())) {
contingencyOriginalData.setStepState(stepStateOnbutton);
}
iContingencyOriginalDataDao.updateByButton(
contingencyOriginalData.getConfirm(),
contingencyOriginalData.getRunstep(),
......@@ -180,7 +171,7 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla
// contingencyRo.setStep(stepCode);
log.info("stepstate:" + contingencyRo.getStepState());
log.info("stepCode:" + stepCode);
Equipment equipment = impAndFireEquipMapper.queryImpEqumtByFireEquipmt(Long.parseLong(contingencyRo.getFireEquipmentId()));
equipment = impAndFireEquipMapper.queryImpEqumtByFireEquipmt(Long.parseLong(contingencyRo.getFireEquipmentId()));
if (equipment != null) {
// 获取重点设备胚胎指标
// 获取遥信指标
......@@ -202,16 +193,11 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla
ruleTrigger.publish(contingencyRo, equipment.getReservePlan(), ArrayUtils.toArray(equipment.getName()));
publisherPlanLog(stepCode, buttonCode, batchNo);
// 结束预案,更新设备重点设备参数
equipment.setEndTime(DateUtil.getDateNow());
equipment.setReserveSource(NumberEnum.ZERO.getValue());
equipment.setStatus(NumberEnum.ZERO.getValue());
equipmentService.save(equipment);
}
} else {
throw new Exception("数据异常,请联系管理员.");
}
return Optional.ofNullable(equipment);
}
private void publisherPlanLog(String stepCode, String buttonCode, String batchNo) {
......@@ -226,7 +212,7 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla
json.put("msgType", "message");
json.put("msgContext", msgContext);
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.setMsgType("clickEvent");
event.setContingency(batchNo);
......@@ -238,9 +224,9 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla
ObjectMapper objectMapper = new ObjectMapper();
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())) {
String operateJson = contingencyPlanInstance.getContent();
OperateGroup operateGroup = objectMapper.readValue(operateJson, OperateGroup.class);
......@@ -249,8 +235,8 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla
if (!CollectionUtils.isEmpty(operates)) {
for (Operate operate : operates) {
if (code.equals(operate.getCode()) && ("executed".equals(operate.getState()) || "disable".equals(operate.getState()))){
if("FIRE_CANCEL".equals(code) || "END_EMERGENCY".equals(code)){
if (code.equals(operate.getCode()) && ("executed".equals(operate.getState()) || "disable".equals(operate.getState()))) {
if ("FIRE_CANCEL".equals(code) || "END_EMERGENCY".equals(code)) {
redisTemplate.delete(RiskSourceServiceImpl.cacheKeyForCanBeRunning());
}
throw new Exception("请勿重复操作.");
......@@ -260,7 +246,7 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla
if ("CONFIRM".equals(buttonState)) {
if (code.equals(operate.getCode())) {
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());
} else {
operate.setState("disable");
......@@ -283,9 +269,9 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla
public void setButtonWait(String batchNo, String contingencyPlanId, String buttonState) throws Exception {
ObjectMapper objectMapper = new ObjectMapper();
Optional<ContingencyPlanInstance> contingencyPlanInstance1 = repository.findById(contingencyPlanId);
ContingencyPlanInstance contingencyPlanInstance=null;
if(contingencyPlanInstance1.isPresent()){
contingencyPlanInstance=contingencyPlanInstance1.get();
ContingencyPlanInstance contingencyPlanInstance = null;
if (contingencyPlanInstance1.isPresent()) {
contingencyPlanInstance = contingencyPlanInstance1.get();
}
if (contingencyPlanInstance != null && "OPERATE".equals(contingencyPlanInstance.getRecordType())) {
......@@ -313,6 +299,6 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla
@Override
public void updateStep(String step, String batchNo) {
iContingencyOriginalDataDao.updateByButtonStep(step,batchNo);
iContingencyOriginalDataDao.updateByButtonStep(step, batchNo);
}
}
package com.yeejoin.amos.fas.business.service.intfc;
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.Equipment;
public interface IContingencyInstance {
......@@ -17,7 +20,7 @@ public interface IContingencyInstance {
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);
}
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