Commit 279c1b34 authored by 高建强's avatar 高建强

item:应急处置移动端功能新增

parent 8a88dd07
package com.yeejoin.amos.fas.dao.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.List;
/**
* 货架结构
*
* @author wujiang
* @date 2020-07-07
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("wl_warehouse_structure")
@ApiModel(value = "WarehouseStructure对象", description = "货架结构")
public class WarehouseStructure extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "位置编码")
private String code;
@ApiModelProperty(value = "名称")
private String name;
@ApiModelProperty(value = "全称")
private String fullName;
@ApiModelProperty(value = "父ID")
private Long parentId;
@ApiModelProperty(value = "位置类型")
private Long cellType;
@ApiModelProperty(value = "货位code")
private String cellCode;
@ApiModelProperty(value = "仓库ID")
private Long warehouseId;
//新加
@ApiModelProperty(value = "机构/部门名称")
@TableField("biz_org_name")
private String bizOrgName;
@ApiModelProperty(value = "机构编码")
@TableField("biz_org_code")
private String bizOrgCode;
private String remark;
@ApiModelProperty(value = "预控系统中的ID字段")
private Long sourceId;
@ApiModelProperty(value = "预控系统中的code字段")
private String sourceCode;
@TableField(exist = false)
private List<WarehouseStructure> children;
}
...@@ -17,7 +17,6 @@ import com.yeejoin.amos.fas.business.action.result.ActionResult; ...@@ -17,7 +17,6 @@ import com.yeejoin.amos.fas.business.action.result.ActionResult;
import com.yeejoin.amos.fas.business.action.result.SafteyPlanResult; import com.yeejoin.amos.fas.business.action.result.SafteyPlanResult;
import com.yeejoin.amos.fas.business.action.result.message.AbstractActionResultMessage; import com.yeejoin.amos.fas.business.action.result.message.AbstractActionResultMessage;
import com.yeejoin.amos.fas.business.action.util.ContingencyLogPublisher; import com.yeejoin.amos.fas.business.action.util.ContingencyLogPublisher;
import com.yeejoin.amos.fas.business.controller.ContingencyPlanController;
import com.yeejoin.amos.fas.business.dao.mapper.PlanDetailMapper; import com.yeejoin.amos.fas.business.dao.mapper.PlanDetailMapper;
import com.yeejoin.amos.fas.business.dao.mapper.PlanOperationRecordMapper; import com.yeejoin.amos.fas.business.dao.mapper.PlanOperationRecordMapper;
import com.yeejoin.amos.fas.business.dao.repository.IPlanDetailDao; import com.yeejoin.amos.fas.business.dao.repository.IPlanDetailDao;
...@@ -25,6 +24,8 @@ import com.yeejoin.amos.fas.business.dao.repository.IPlanOperationRecordDao; ...@@ -25,6 +24,8 @@ import com.yeejoin.amos.fas.business.dao.repository.IPlanOperationRecordDao;
import com.yeejoin.amos.fas.business.feign.IDutyModeServer; import com.yeejoin.amos.fas.business.feign.IDutyModeServer;
import com.yeejoin.amos.fas.business.feign.JcsFeign; import com.yeejoin.amos.fas.business.feign.JcsFeign;
import com.yeejoin.amos.fas.business.feign.RemoteSecurityService; import com.yeejoin.amos.fas.business.feign.RemoteSecurityService;
import com.yeejoin.amos.fas.business.jpush.JPushTypeEnum;
import com.yeejoin.amos.fas.business.jpush.PushMsgParam;
import com.yeejoin.amos.fas.business.service.impl.RuleRunigSnapshotServiceImpl; import com.yeejoin.amos.fas.business.service.impl.RuleRunigSnapshotServiceImpl;
import com.yeejoin.amos.fas.business.service.intfc.*; import com.yeejoin.amos.fas.business.service.intfc.*;
import com.yeejoin.amos.fas.business.service.model.ContingencyDeviceStatus; import com.yeejoin.amos.fas.business.service.model.ContingencyDeviceStatus;
...@@ -36,7 +37,6 @@ import com.yeejoin.amos.fas.business.vo.Toke; ...@@ -36,7 +37,6 @@ import com.yeejoin.amos.fas.business.vo.Toke;
import com.yeejoin.amos.fas.common.enums.ContingencyPlanStatusEnum; import com.yeejoin.amos.fas.common.enums.ContingencyPlanStatusEnum;
import com.yeejoin.amos.fas.common.enums.PlanRecordStatusEnum; import com.yeejoin.amos.fas.common.enums.PlanRecordStatusEnum;
import com.yeejoin.amos.fas.core.enums.NumberEnum; import com.yeejoin.amos.fas.core.enums.NumberEnum;
import com.yeejoin.amos.fas.core.util.CommonResponse;
import com.yeejoin.amos.fas.core.util.DateUtil; import com.yeejoin.amos.fas.core.util.DateUtil;
import com.yeejoin.amos.fas.core.util.ResponseModel; import com.yeejoin.amos.fas.core.util.ResponseModel;
import com.yeejoin.amos.fas.dao.entity.ContingencyPlanInstance; import com.yeejoin.amos.fas.dao.entity.ContingencyPlanInstance;
...@@ -45,6 +45,7 @@ import com.yeejoin.amos.fas.dao.entity.PlanDetail; ...@@ -45,6 +45,7 @@ import com.yeejoin.amos.fas.dao.entity.PlanDetail;
import com.yeejoin.amos.fas.dao.entity.PlanOperationRecord; import com.yeejoin.amos.fas.dao.entity.PlanOperationRecord;
import com.yeejoin.amos.fas.datasync.bo.PlanDetailSyncBo; import com.yeejoin.amos.fas.datasync.bo.PlanDetailSyncBo;
import com.yeejoin.amos.fas.datasync.bo.PlanOperationRecordSyncBo; import com.yeejoin.amos.fas.datasync.bo.PlanOperationRecordSyncBo;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -132,7 +133,7 @@ public class ContingencyAction implements CustomerAction { ...@@ -132,7 +133,7 @@ public class ContingencyAction implements CustomerAction {
private IPlanVisual3dService iPlanVisual3dService; private IPlanVisual3dService iPlanVisual3dService;
@Autowired @Autowired
private ContingencyPlanController contingencyPlanController; private ContingencyInstanceInfoService contingencyInstanceInfoService;
@Value("${rocket-plan-topic}") @Value("${rocket-plan-topic}")
private String rocketTopic; private String rocketTopic;
...@@ -473,6 +474,7 @@ public class ContingencyAction implements CustomerAction { ...@@ -473,6 +474,7 @@ public class ContingencyAction implements CustomerAction {
String batchNo = contingencyRo.getBatchNo(); String batchNo = contingencyRo.getBatchNo();
if (!findByBatchNoAndStatus(batchNo)) { if (!findByBatchNoAndStatus(batchNo)) {
stopSnapshop(contingencyRo); stopSnapshop(contingencyRo);
String buttonCode = contingencyRo.getButtonCode();
//转换content中的变量 //转换content中的变量
tips = instedParams(tips, contingencyRo); tips = instedParams(tips, contingencyRo);
...@@ -491,8 +493,12 @@ public class ContingencyAction implements CustomerAction { ...@@ -491,8 +493,12 @@ public class ContingencyAction implements CustomerAction {
this.sendcmd("optionarea", paramObj, result); this.sendcmd("optionarea", paramObj, result);
//极光推送 //极光推送
Object messageInfo = contingencyPlanController.getUserOperateCountAndPlanName().getResult(); iPlanVisual3dService.sendMessage(buttonCode);
iPlanVisual3dService.sendMessage(JSONUtil.toJson(messageInfo), contingencyRo.getButtonCode()); PushMsgParam pushMsgParam = new PushMsgParam();
pushMsgParam.setSubject("应急处置执行任务提醒");
pushMsgParam.setContent("【" + actionName + "】- " + DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
pushMsgParam.setType(JPushTypeEnum.TAG.getCode());
iPlanVisual3dService.sendMessage(buttonCode, pushMsgParam);
} }
} }
...@@ -682,6 +688,7 @@ public class ContingencyAction implements CustomerAction { ...@@ -682,6 +688,7 @@ public class ContingencyAction implements CustomerAction {
public void stopPlan(@MethodParam(paramLabel = "对象") Object paramObj) { public void stopPlan(@MethodParam(paramLabel = "对象") Object paramObj) {
ContingencyRo contingencyRo = (ContingencyRo) paramObj; ContingencyRo contingencyRo = (ContingencyRo) paramObj;
stopSnapshop(contingencyRo); stopSnapshop(contingencyRo);
String batchNo = contingencyRo.getBatchNo();
SafteyPlanResult result = new SafteyPlanResult(); SafteyPlanResult result = new SafteyPlanResult();
Map<String, Object> tempmap1 = new HashMap<>(); Map<String, Object> tempmap1 = new HashMap<>();
...@@ -707,7 +714,7 @@ public class ContingencyAction implements CustomerAction { ...@@ -707,7 +714,7 @@ public class ContingencyAction implements CustomerAction {
} }
// 结束预案 更新预案记录表,预案状态 // 结束预案 更新预案记录表,预案状态
PlanOperationRecord PlanOperationRecord = planOperationRecordDao.findByBatchNo(contingencyRo.getBatchNo()); PlanOperationRecord PlanOperationRecord = planOperationRecordDao.findByBatchNo(batchNo);
if (PlanOperationRecord != null && PlanOperationRecord.getStatus() == PlanRecordStatusEnum.OPERATION.getCode()) { if (PlanOperationRecord != null && PlanOperationRecord.getStatus() == PlanRecordStatusEnum.OPERATION.getCode()) {
PlanOperationRecord.setStatus(PlanRecordStatusEnum.COMPLETE.getCode()); PlanOperationRecord.setStatus(PlanRecordStatusEnum.COMPLETE.getCode());
PlanOperationRecord.setEndTime(new Date()); PlanOperationRecord.setEndTime(new Date());
...@@ -726,6 +733,8 @@ public class ContingencyAction implements CustomerAction { ...@@ -726,6 +733,8 @@ public class ContingencyAction implements CustomerAction {
this.sendweb("recordarea", paramObj, result); this.sendweb("recordarea", paramObj, result);
} }
// 结束预案,更新预案信息表结束时间
contingencyInstanceInfoService.updateEndTimeById(batchNo);
} }
private void planDetailDataSync(PlanDetail detail) { private void planDetailDataSync(PlanDetail detail) {
...@@ -905,8 +914,9 @@ public class ContingencyAction implements CustomerAction { ...@@ -905,8 +914,9 @@ public class ContingencyAction implements CustomerAction {
//数字预案业务屏web端发送消息 //数字预案业务屏web端发送消息
this.sendweb("recordarea", contingencyRo, result); this.sendweb("recordarea", contingencyRo, result);
updateNumberPlan(batchNo); updateNumberPlan(batchNo);
// 应急处置中断,初始化planStep,json数据 // 应急处置中断,初始化planStep,json数据;更新预案结束时间
planRuleService.updatePlanRuleByBatchNo(batchNo); planRuleService.updatePlanRuleByBatchNo(batchNo);
contingencyInstanceInfoService.updateEndTimeById(batchNo);
} }
/** /**
......
package com.yeejoin.amos.fas.business.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.fas.dao.entity.WarehouseStructure;
/**
* 货架结构 Mapper 接口
*
* @author wujiang
* @date 2020-07-07
*/
public interface WarehouseStructureMapper extends BaseMapper<WarehouseStructure> {
}
package com.yeejoin.amos.fas.business.service.impl; package com.yeejoin.amos.fas.business.service.impl;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
...@@ -7,9 +9,16 @@ import java.util.LinkedList; ...@@ -7,9 +9,16 @@ import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
import java.util.stream.Collectors;
import com.yeejoin.amos.fas.business.service.intfc.IPlanRuleService; import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.fas.business.service.intfc.*;
import com.yeejoin.amos.fas.business.vo.PlanStepJsonVO;
import com.yeejoin.amos.fas.datasync.bo.ContingencyOriginalDataSyncBo; import com.yeejoin.amos.fas.datasync.bo.ContingencyOriginalDataSyncBo;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.RoleModel;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.map.ObjectMapper;
...@@ -18,6 +27,7 @@ import org.slf4j.LoggerFactory; ...@@ -18,6 +27,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.Resource;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -36,9 +46,6 @@ import com.yeejoin.amos.fas.business.dao.mapper.*; ...@@ -36,9 +46,6 @@ import com.yeejoin.amos.fas.business.dao.mapper.*;
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.feign.RemoteSecurityService; import com.yeejoin.amos.fas.business.feign.RemoteSecurityService;
import com.yeejoin.amos.fas.business.service.intfc.IContingencyInstance;
import com.yeejoin.amos.fas.business.service.intfc.IDataSyncService;
import com.yeejoin.amos.fas.business.service.intfc.IRocketMQService;
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.business.util.DateUtils; import com.yeejoin.amos.fas.business.util.DateUtils;
...@@ -96,6 +103,20 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla ...@@ -96,6 +103,20 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla
@Autowired @Autowired
private IPlanRuleService planRuleService; private IPlanRuleService planRuleService;
@Autowired
private ContingencyInstanceInfoService contingencyInstanceInfoService;
@Autowired
private IContingencyInstance contingencyInstance;
@Autowired
private ContingencyPlanInstanceMapper contingencyPlanInstanceMapper;
@Autowired
private IPlanVisual3dService planVisual3dService;
@Value("classpath:/json/plan-step.json")
private Resource planStepResource;
private static Map<String, String> stepMap = new HashMap<>(); private static Map<String, String> stepMap = new HashMap<>();
...@@ -323,6 +344,8 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla ...@@ -323,6 +344,8 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla
if ("END_EMERGENCY".equals(code)) { if ("END_EMERGENCY".equals(code)) {
// 应急处置中断,初始化planStep,json数据 // 应急处置中断,初始化planStep,json数据
planRuleService.updatePlanRuleByBatchNo(batchNo); planRuleService.updatePlanRuleByBatchNo(batchNo);
// 应急处置中断,更新预案信息表结束时间
contingencyInstanceInfoService.updateEndTimeById(batchNo);
} }
} else { } else {
operate.setState("disable"); operate.setState("disable");
...@@ -331,12 +354,15 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla ...@@ -331,12 +354,15 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla
} }
} }
operateJson = objectMapper.writeValueAsString(operateGroup);
contingencyPlanInstance.setContent(operateJson);
if (buttonState.equals("CONFIRM")) { if (buttonState.equals("CONFIRM")) {
contingencyPlanInstance.setRunstate(true); contingencyPlanInstance.setRunstate(true);
ContingencyPlanInstance planInstance = contingencyInstance.updateExtendColumn(contingencyPlanInstance);
BeanUtils.copyProperties(planInstance, contingencyPlanInstance);
// 确认后,移动端极光推送
planVisual3dService.sendMessage(code);
} }
operateJson = objectMapper.writeValueAsString(operateGroup);
contingencyPlanInstance.setContent(operateJson);
ContingencyPlanInstance instance = repository.save(contingencyPlanInstance); ContingencyPlanInstance instance = repository.save(contingencyPlanInstance);
// 异步数据同步之消息发送 // 异步数据同步之消息发送
contingencyPlanInstanceDataSync(instance); contingencyPlanInstanceDataSync(instance);
...@@ -409,6 +435,46 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla ...@@ -409,6 +435,46 @@ public class ContingencyInstanceImpl /*extends GenericManagerImpl<ContingencyPla
return Optional.empty(); return Optional.empty();
} }
@Override
public ContingencyPlanInstance updateExtendColumn(ContingencyPlanInstance contingencyPlanInstance) {
FeignClientResult<AgencyUserModel> feignClientResult = Privilege.agencyUserClient.getme();
AgencyUserModel user = (AgencyUserModel) feignClientResult.getResult();
String json = "";
try {
json = IOUtils.toString(planStepResource.getInputStream(), String.valueOf(StandardCharsets.UTF_8));
} catch (IOException e) {
throw new RuntimeException("获取预案相关角色信息失败!");
}
List<PlanStepJsonVO> result = JSONObject.parseArray(json, PlanStepJsonVO.class);
List<String> roleCode = result.stream().map(PlanStepJsonVO::getRoleCode).distinct().collect(Collectors.toList());
List<RoleModel> roleModelList = new ArrayList<>();
for (Long key : user.getOrgRoles().keySet()) {
roleModelList.addAll(user.getOrgRoles().get(key));
}
List<String> roleCodeList = new ArrayList<>();
List<String> roleNameList = new ArrayList<>();
List<String> realRoleCode = roleModelList.stream().map(RoleModel::getRoleName).distinct().collect(Collectors.toList());
realRoleCode.forEach(item -> {
if (roleCode.contains(item)) {
roleCodeList.add(item);
}
});
roleModelList.forEach(item -> {
if (!roleNameList.contains(item.getRoleDesc()) && roleCode.contains(item.getRoleName())) {
roleNameList.add(item.getRoleDesc());
}
});
contingencyPlanInstance.setRoleCode(String.join(",", roleCodeList));
contingencyPlanInstance.setRoleName(String.join(",", roleNameList));
contingencyPlanInstance.setStartUserId(user.getUserId());
contingencyPlanInstance.setStartUserId(user.getRealName());
Map<String, String> userInfo = contingencyPlanInstanceMapper.getUserByUserId(user.getUserId());
contingencyPlanInstance.setPersonImg(userInfo.get("personImg"));
return contingencyPlanInstance;
}
private void sendPlanAlarm(String batchNo, String buttonCode) { private void sendPlanAlarm(String batchNo, String buttonCode) {
//确警后推送报警数据 //确警后推送报警数据
List<FirePlanAlarmBo> list = new ArrayList<FirePlanAlarmBo>(); List<FirePlanAlarmBo> list = new ArrayList<FirePlanAlarmBo>();
......
...@@ -8,6 +8,7 @@ import com.yeejoin.amos.fas.dao.entity.ContingencyInstanceInfo; ...@@ -8,6 +8,7 @@ import com.yeejoin.amos.fas.dao.entity.ContingencyInstanceInfo;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List; import java.util.List;
...@@ -54,4 +55,14 @@ public class ContingencyInstanceInfoServiceImpl implements ContingencyInstanceIn ...@@ -54,4 +55,14 @@ public class ContingencyInstanceInfoServiceImpl implements ContingencyInstanceIn
return contingencyInstanceInfoMapper.updateDisposalDetails(contingencyInstanceInfo); return contingencyInstanceInfoMapper.updateDisposalDetails(contingencyInstanceInfo);
} }
@Override
public Boolean updateEndTimeById(String id) {
ContingencyInstanceInfo instanceInfo = selectDisposalDetails(id);
if (instanceInfo != null) {
instanceInfo.setEndTime(new Date());
return contingencyInstanceInfoMapper.updateDisposalDetails(instanceInfo);
}
return false;
}
} }
...@@ -61,6 +61,8 @@ public class ContingencyPlanServiceImpl implements IContingencyPlanService { ...@@ -61,6 +61,8 @@ public class ContingencyPlanServiceImpl implements IContingencyPlanService {
@Autowired @Autowired
private EquipmentSpecificMapper equipmentSpecificMapper; private EquipmentSpecificMapper equipmentSpecificMapper;
@Autowired @Autowired
private WarehouseStructureMapper warehouseStructureMapper;
@Autowired
private IEquipmentHandlerService equipmentHandlerService; private IEquipmentHandlerService equipmentHandlerService;
@Autowired @Autowired
private IContingencyPlanInstanceRepository repository; private IContingencyPlanInstanceRepository repository;
...@@ -69,6 +71,9 @@ public class ContingencyPlanServiceImpl implements IContingencyPlanService { ...@@ -69,6 +71,9 @@ public class ContingencyPlanServiceImpl implements IContingencyPlanService {
@Qualifier("contingencyAction") @Qualifier("contingencyAction")
@Autowired @Autowired
private CustomerAction customerAction; private CustomerAction customerAction;
@Autowired
private ContingencyInstanceInfoService contingencyInstanceInfoService;
@Value("${systemctl.sync.switch}") @Value("${systemctl.sync.switch}")
...@@ -167,18 +172,25 @@ public class ContingencyPlanServiceImpl implements IContingencyPlanService { ...@@ -167,18 +172,25 @@ public class ContingencyPlanServiceImpl implements IContingencyPlanService {
return result; return result;
} }
} }
String specificCode = equipmentSpecific.getCode();
String specificName = equipmentSpecific.getName();
Date date = new Date();
// 插入预案基本信息
ContingencyInstanceInfo instanceInfo = new ContingencyInstanceInfo();
instanceInfo.setStartTime(date);
instanceInfo.setEquipmentCode(specificCode);
instanceInfo.setEquipmentName(specificName);
//插入运行记录表 //插入运行记录表
PlanOperationRecord PlanOperationRecord = new PlanOperationRecord(); PlanOperationRecord PlanOperationRecord = new PlanOperationRecord();
PlanOperationRecord.setStatus(PlanRecordStatusEnum.OPERATION.getCode()); PlanOperationRecord.setStatus(PlanRecordStatusEnum.OPERATION.getCode());
PlanOperationRecord.setPlanId(PlanDetailOp.get().getId()); PlanOperationRecord.setPlanId(PlanDetailOp.get().getId());
PlanOperationRecord.setIsDelete(false); PlanOperationRecord.setIsDelete(false);
PlanOperationRecord.setStartTime(new Date()); PlanOperationRecord.setStartTime(date);
PlanOperationRecord.setPlanPattern(vo.getStatus()); PlanOperationRecord.setPlanPattern(vo.getStatus());
PlanOperationRecord.setStartUserId(vo.getUserId()); PlanOperationRecord.setStartUserId(vo.getUserId());
PlanOperationRecord.setStartUserName(vo.getUserName()); PlanOperationRecord.setStartUserName(vo.getUserName());
PlanOperationRecord.setEquipmentCode(equipmentSpecific.getCode()); PlanOperationRecord.setEquipmentCode(specificCode);
PlanOperationRecord.setEquipmentName(equipmentSpecific.getName()); PlanOperationRecord.setEquipmentName(specificName);
PlanOperationRecord.setEquipmentId(equipmentSpecific.getId()); PlanOperationRecord.setEquipmentId(equipmentSpecific.getId());
PlanOperationRecord.setFireEquipmentId(equipment.getId()); PlanOperationRecord.setFireEquipmentId(equipment.getId());
if (ContingencyPlanStatusEnum.SIMULATION_START.getCode().equals(vo.getStatus())) { if (ContingencyPlanStatusEnum.SIMULATION_START.getCode().equals(vo.getStatus())) {
...@@ -204,6 +216,15 @@ public class ContingencyPlanServiceImpl implements IContingencyPlanService { ...@@ -204,6 +216,15 @@ public class ContingencyPlanServiceImpl implements IContingencyPlanService {
//更新预案执行记录表的批次号 //更新预案执行记录表的批次号
operationRecord.setBatchNo(batchNo); operationRecord.setBatchNo(batchNo);
PlanOperationRecord record = planOperationRecordDao.save(operationRecord); PlanOperationRecord record = planOperationRecordDao.save(operationRecord);
// 保存预案基本信息
instanceInfo.setId(batchNo);
instanceInfo.setName(detail.getPlanName());
instanceInfo.setOrgCode(detail.getOrgCode());
WarehouseStructure warehouseStructure = warehouseStructureMapper.selectById(equipmentSpecific.getWarehouseStructureId());
if (warehouseStructure != null) {
instanceInfo.setPosition(warehouseStructure.getName());
}
contingencyInstanceInfoService.addDisposalDetails(instanceInfo);
// 异步数据同步之消息发送 // 异步数据同步之消息发送
planOperationRecordDataSync(record); planOperationRecordDataSync(record);
result.setMessage(ReserveEnum.RUN.getText()); result.setMessage(ReserveEnum.RUN.getText());
......
...@@ -494,6 +494,37 @@ public class PlanVisual3dServiceImpl implements IPlanVisual3dService { ...@@ -494,6 +494,37 @@ public class PlanVisual3dServiceImpl implements IPlanVisual3dService {
@Override @Override
public void sendMessage(String json, String buttonCode) { public void sendMessage(String json, String buttonCode) {
String userIdsJoin = getUserIds(buttonCode);
//极光推送
PushMsgParam pushMsgParam = new PushMsgParam();
pushMsgParam.setRecivers(Arrays.asList(userIdsJoin.split(",")));
pushMsgParam.setContent(json);
pushMsgParam.setSubject("REPLYMESSAGE");
pushMsgParam.setType(JPushTypeEnum.REPLY_MESSAGE.getCode());
pushFeign.sendMessageone(pushMsgParam);
}
@Override
public void sendMessage(String buttonCode) {
String userIdsJoin = getUserIds(buttonCode);
//极光推送
PushMsgParam pushMsgParam = new PushMsgParam();
pushMsgParam.setRecivers(Arrays.asList(userIdsJoin.split(",")));
pushMsgParam.setContent(JPushTypeEnum.ALL.getName());
pushMsgParam.setSubject(JPushTypeEnum.ALL.getName());
pushMsgParam.setType(JPushTypeEnum.ALL.getCode());
pushFeign.sendMessageone(pushMsgParam);
}
@Override
public void sendMessage(String buttonCode, PushMsgParam pushMsgParam) {
String userIdsJoin = getUserIds(buttonCode);
//极光推送
pushMsgParam.setRecivers(Arrays.asList(userIdsJoin.split(",")));
pushFeign.sendMessageone(pushMsgParam);
}
private String getUserIds(String buttonCode) {
String planStepJson = ""; String planStepJson = "";
try { try {
planStepJson = IOUtils.toString(planStepResource.getInputStream(), String.valueOf(StandardCharsets.UTF_8)); planStepJson = IOUtils.toString(planStepResource.getInputStream(), String.valueOf(StandardCharsets.UTF_8));
...@@ -505,12 +536,6 @@ public class PlanVisual3dServiceImpl implements IPlanVisual3dService { ...@@ -505,12 +536,6 @@ public class PlanVisual3dServiceImpl implements IPlanVisual3dService {
String roleJoin = String.join(",", collect); String roleJoin = String.join(",", collect);
// TODO: 2022/10/19 根据多个角色code查询用户ids // TODO: 2022/10/19 根据多个角色code查询用户ids
String userIdsJoin = ""; String userIdsJoin = "";
//极光推送 return userIdsJoin;
PushMsgParam pushMsgParam = new PushMsgParam();
pushMsgParam.setRecivers(Arrays.asList(userIdsJoin.split(",")));
pushMsgParam.setContent(json);
pushMsgParam.setSubject("REPLYMESSAGE");
pushMsgParam.setType(JPushTypeEnum.REPLY_MESSAGE.getCode());
pushFeign.sendMessageone(pushMsgParam);
} }
} }
...@@ -14,4 +14,11 @@ public interface ContingencyInstanceInfoService { ...@@ -14,4 +14,11 @@ public interface ContingencyInstanceInfoService {
Boolean updateDisposalDetails(ContingencyInstanceInfo contingencyInstanceInfo); Boolean updateDisposalDetails(ContingencyInstanceInfo contingencyInstanceInfo);
/**
* 通过ID更新预案的结束时间
* @param id
* @return
*/
Boolean updateEndTimeById(String id);
} }
...@@ -24,4 +24,11 @@ public interface IContingencyInstance { ...@@ -24,4 +24,11 @@ public interface IContingencyInstance {
void updateStep(String step, String batchNo); void updateStep(String step, String batchNo);
Optional<Equipment> fire(String batchNo, String stepCode, String contingencyPlanId, String buttonCode, String buttonState, String stepStateOnbutton, String token, String product) throws Exception; Optional<Equipment> fire(String batchNo, String stepCode, String contingencyPlanId, String buttonCode, String buttonState, String stepStateOnbutton, String token, String product) throws Exception;
/**
* 扩展属性赋值
* @param contingencyPlanInstance
* @return
*/
ContingencyPlanInstance updateExtendColumn(ContingencyPlanInstance contingencyPlanInstance);
} }
...@@ -3,6 +3,7 @@ package com.yeejoin.amos.fas.business.service.intfc; ...@@ -3,6 +3,7 @@ package com.yeejoin.amos.fas.business.service.intfc;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.fas.business.jpush.PushMsgParam;
import com.yeejoin.amos.fas.business.service.model.ToipResponse; import com.yeejoin.amos.fas.business.service.model.ToipResponse;
import com.yeejoin.amos.fas.business.vo.PlanStepVo; import com.yeejoin.amos.fas.business.vo.PlanStepVo;
import com.yeejoin.amos.fas.business.vo.TreeSubjectVo; import com.yeejoin.amos.fas.business.vo.TreeSubjectVo;
...@@ -102,4 +103,17 @@ public interface IPlanVisual3dService { ...@@ -102,4 +103,17 @@ public interface IPlanVisual3dService {
* @param buttonCode 按钮编码 * @param buttonCode 按钮编码
*/ */
void sendMessage(String json, String buttonCode); void sendMessage(String json, String buttonCode);
/**
* 极光推送
* @param buttonCode 按钮编码
*/
void sendMessage(String buttonCode);
/**
* 极光推送
* @param buttonCode 按钮编码
* @param pushMsgParam 消息体
*/
void sendMessage(String buttonCode, PushMsgParam pushMsgParam);
} }
...@@ -29,6 +29,9 @@ public class EquipmentSpecificForRiskVo { ...@@ -29,6 +29,9 @@ public class EquipmentSpecificForRiskVo {
@ApiModelProperty(value = "detailid") @ApiModelProperty(value = "detailid")
private Long equipmentDetailId; private Long equipmentDetailId;
@ApiModelProperty(value = "warehouseStructureId")
private Long warehouseStructureId;
@ApiModelProperty(value = "二维码") @ApiModelProperty(value = "二维码")
private String qrCode; private String qrCode;
......
...@@ -220,6 +220,7 @@ ...@@ -220,6 +220,7 @@
wes.code as code, wes.code as code,
wes.org_code as orgCode, wes.org_code as orgCode,
wes.equipment_code as equipmentCode, wes.equipment_code as equipmentCode,
wes.warehouse_structure_id,
IF(substr(wes.equipment_code ,1,4) = '9204','true','false') as push3D IF(substr(wes.equipment_code ,1,4) = '9204','true','false') as push3D
from from
wl_equipment_specific wes wl_equipment_specific wes
......
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