Commit eed7a515 authored by 高建强's avatar 高建强

Merge branch 'dev_plan' into dev_upgrade

parents 51629705 1b0dbc75
package com.yeejoin.amos.fas.common.enums;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author gaojianqiang
*/
public enum PlanReplyMessageEnum {
TEXT("文本","text"),
IMAGE("图片","image"),
VIDEO("视频","video");
/**
* 名称,描述
*/
private String name;
/**
* 编码
*/
private String code;
private PlanReplyMessageEnum(String name, String code){
this.name = name;
this.code = code;
}
public static PlanReplyMessageEnum getEnum(String code) {
PlanReplyMessageEnum checkStatusEnum = null;
for(PlanReplyMessageEnum type: PlanReplyMessageEnum.values()) {
if (type.getCode().equals(code)) {
checkStatusEnum = type;
break;
}
}
return checkStatusEnum;
}
public static List<Map<String,Object>> getEnumList() {
List<Map<String,Object>> nameList = new ArrayList<>();
for (PlanReplyMessageEnum c: PlanReplyMessageEnum.values()) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", c.getName());
map.put("code", c.getCode());
nameList.add(map);
}
return nameList;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}
package com.yeejoin.amos.fas.dao.entity; package com.yeejoin.amos.fas.dao.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model; import com.baomidou.mybatisplus.extension.activerecord.Model;
...@@ -42,6 +43,8 @@ public class ContingencyInstanceInfo extends Model<ContingencyInstanceInfo>{ ...@@ -42,6 +43,8 @@ public class ContingencyInstanceInfo extends Model<ContingencyInstanceInfo>{
private String orgCode; private String orgCode;
@TableField
private String duration;
} }
package com.yeejoin.amos.fas.dao.entity; package com.yeejoin.amos.fas.dao.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model; import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
......
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;
}
package com.yeejoin.amos.fas.business.controller;
import com.yeejoin.amos.fas.business.service.intfc.ContingencyInstanceInfoService;
import com.yeejoin.amos.fas.business.vo.ReginParams;
import com.yeejoin.amos.fas.config.Permission;
import com.yeejoin.amos.fas.core.util.CommonResponseUtil;
import com.yeejoin.amos.fas.core.util.CommonResponseUtil2;
import com.yeejoin.amos.fas.core.util.ResponseModel;
import com.yeejoin.amos.fas.dao.entity.ContingencyInstanceInfo;
import com.yeejoin.amos.fas.exception.YeeException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(value = "/plan/record")
@Api(tags = "应急预案执行记录实例")
public class ContingencyInstanceInfoController extends BaseController {
@Autowired
private ContingencyInstanceInfoService contingencyInstanceInfoService;
@Permission
@ApiOperation(value = "应急预案执行记录信息", notes = "应急预案执行记录信息")
@GetMapping(value = "/selectDisposalDetails")
public ResponseModel selectDisposalDetails(@RequestParam("batchNo") String batchNo) {
return CommonResponseUtil.successNew(contingencyInstanceInfoService.selectDisposalDetails(batchNo));
}
@Permission
@ApiOperation(httpMethod = "GET", value = "分页查询应急预案执行记录信息", notes = "分页查询应急预案执行记录信息")
@GetMapping(value = "/selectDisposalListPage")
public ResponseModel selectDisposalListPage(@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size
) {
if (current < 1 || size < 1) {
throw new YeeException("分页参数有误");
}
ReginParams reginParams = getSelectedOrgInfo();
String orgCode = getOrgCode(reginParams);
return CommonResponseUtil2.success(contingencyInstanceInfoService.selectDisposalListPage(current, size, orgCode));
}
@Permission
@ApiOperation(value = "新增应急预案执行记录", notes = "新增应急预案执行记录")
@PostMapping(value = "/addDisposalDetails")
public ResponseModel addDisposalDetails(@RequestBody ContingencyInstanceInfo contingencyInstanceInfo) {
ReginParams reginParams = getSelectedOrgInfo();
String orgCode = getOrgCode(reginParams);
contingencyInstanceInfo.setOrgCode(orgCode);
return CommonResponseUtil.successNew(contingencyInstanceInfoService.addDisposalDetails(contingencyInstanceInfo));
}
@Permission
@ApiOperation(value = "修改应急预案执行记录信息", notes = "修改应急预案执行记录信息")
@PostMapping(value = "/updateDisposalDetails")
public ResponseModel updateDisposalDetails(@RequestBody ContingencyInstanceInfo contingencyInstanceInfo) {
return CommonResponseUtil.successNew(contingencyInstanceInfoService.updateDisposalDetails(contingencyInstanceInfo));
}
}
...@@ -14,6 +14,7 @@ import io.swagger.annotations.ApiOperation; ...@@ -14,6 +14,7 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.*; import java.util.*;
...@@ -236,7 +237,13 @@ public class ContingencyPlanController extends BaseController { ...@@ -236,7 +237,13 @@ public class ContingencyPlanController extends BaseController {
@ApiOperation(value = "获取预案状态") @ApiOperation(value = "获取预案状态")
@RequestMapping(value = "/getPlanStatus", method = RequestMethod.GET) @RequestMapping(value = "/getPlanStatus", method = RequestMethod.GET)
public ResponseModel getPlanStatus() { public ResponseModel getPlanStatus() {
return CommonResponseUtil2.success(contingencyPlanService.getPlanStatus()); return CommonResponseUtil2.success(CollectionUtils.isEmpty(contingencyPlanService.getPlanStatus()));
}
@ApiOperation(value = "获取执行预案序列号")
@RequestMapping(value = "/getPlanBatchNo", method = RequestMethod.GET)
public ResponseModel getPlanBatchNo() {
return CommonResponseUtil2.success(contingencyPlanService.getPlanBatchNo());
} }
@ApiOperation(value = "获取当前登录人待处置任务及预案信息") @ApiOperation(value = "获取当前登录人待处置任务及预案信息")
......
...@@ -2,6 +2,7 @@ package com.yeejoin.amos.fas.business.controller; ...@@ -2,6 +2,7 @@ package com.yeejoin.amos.fas.business.controller;
import com.yeejoin.amos.fas.business.service.intfc.IPlanVisual3dService; import com.yeejoin.amos.fas.business.service.intfc.IPlanVisual3dService;
import com.yeejoin.amos.fas.business.util.StringUtil; import com.yeejoin.amos.fas.business.util.StringUtil;
import com.yeejoin.amos.fas.business.vo.ContingencyPlanInstanceVO;
import com.yeejoin.amos.fas.business.vo.PlanStepVo; import com.yeejoin.amos.fas.business.vo.PlanStepVo;
import com.yeejoin.amos.fas.business.vo.ReginParams; import com.yeejoin.amos.fas.business.vo.ReginParams;
import com.yeejoin.amos.fas.config.Permission; import com.yeejoin.amos.fas.config.Permission;
...@@ -201,55 +202,17 @@ public class PlanVisual3dController extends BaseController { ...@@ -201,55 +202,17 @@ public class PlanVisual3dController extends BaseController {
} }
@Permission @Permission
@ApiOperation(value = "处置详情信息", notes = "处置详情信息")
@GetMapping(value = "/plan/selectDisposalDetails")
public ResponseModel selectDisposalDetails(@RequestParam("disposalId") String disposalId) {
return CommonResponseUtil.successNew(planVisual3dService.selectDisposalDetails(disposalId));
}
@Permission
@ApiOperation(httpMethod = "GET", value = "分页查询处置详情信息", notes = "分页查询处置详情信息")
@GetMapping(value = "/plan/selectDisposalListPage")
public ResponseModel selectDisposalListPage(@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size
) {
if (current < 1 || size < 1) {
throw new YeeException("分页参数有误");
}
ReginParams reginParams = getSelectedOrgInfo();
String orgCode = getOrgCode(reginParams);
return CommonResponseUtil2.success(planVisual3dService.selectDisposalListPage(current, size, orgCode));
}
@Permission
@ApiOperation(value = "新增处置信息", notes = "新增处置信息")
@PostMapping(value = "/plan/addDisposalDetails")
public ResponseModel addDisposalDetails(@RequestBody ContingencyInstanceInfo contingencyInstanceInfo) {
ReginParams reginParams = getSelectedOrgInfo();
String orgCode = getOrgCode(reginParams);
contingencyInstanceInfo.setOrgCode(orgCode);
return CommonResponseUtil.successNew(planVisual3dService.addDisposalDetails(contingencyInstanceInfo));
}
@Permission
@ApiOperation(value = "修改处置信息", notes = "修改处置信息")
@PostMapping(value = "/plan/updateDisposalDetails")
public ResponseModel updateDisposalDetails(@RequestBody ContingencyInstanceInfo contingencyInstanceInfo) {
return CommonResponseUtil.successNew(planVisual3dService.updateDisposalDetails(contingencyInstanceInfo));
}
@Permission
@ApiOperation(value = "根据批次号获取预案的消息等记录", notes = "根据批次号获取预案的消息等记录") @ApiOperation(value = "根据批次号获取预案的消息等记录", notes = "根据批次号获取预案的消息等记录")
@GetMapping(value = "/plan/getPlaneRecordByNew") @GetMapping(value = "/plan/getPlaneRecordByNew")
public ResponseModel getPlaneRecordByNew(@RequestParam Integer pageNum, @RequestParam Integer size, @RequestParam(required = false) String batchNo) { public ResponseModel<ContingencyPlanInstanceVO> getPlaneRecordByNew(@RequestParam Integer pageNum, @RequestParam Integer size, @RequestParam(required = false) String batchNo) {
AgencyUserModel user = getUserInfo();
if (!StringUtil.isNotEmpty(batchNo)) { if (!StringUtil.isNotEmpty(batchNo)) {
batchNo = planVisual3dService.getNewestBatchNo(); batchNo = planVisual3dService.getNewestBatchNo();
} }
if (!StringUtil.isNotEmpty(batchNo)) { if (!StringUtil.isNotEmpty(batchNo)) {
return CommonResponseUtil.successNew(null); return CommonResponseUtil.successNew(null);
} }
return CommonResponseUtil.successNew(planVisual3dService.getPlaneRecordByNew(pageNum, size, batchNo)); return CommonResponseUtil.successNew(planVisual3dService.getPlaneRecordByNew(pageNum, size, batchNo, user));
} }
@Permission @Permission
...@@ -257,16 +220,15 @@ public class PlanVisual3dController extends BaseController { ...@@ -257,16 +220,15 @@ public class PlanVisual3dController extends BaseController {
@PostMapping(value = "/plan/replyMessage") @PostMapping(value = "/plan/replyMessage")
public ResponseModel replyMessage(@RequestBody ContingencyPlanInstance dto) { public ResponseModel replyMessage(@RequestBody ContingencyPlanInstance dto) {
AgencyUserModel user = getUserInfo(); AgencyUserModel user = getUserInfo();
planVisual3dService.replyMessage(user, dto); return CommonResponseUtil.successNew(planVisual3dService.replyMessage(user, dto));
return CommonResponseUtil.successNew(null);
} }
@Permission @Permission
@ApiOperation(httpMethod = "GET", value = "分页查询处置详情信息", notes = "分页查询处置详情信息") @ApiOperation(httpMethod = "GET", value = "分页查询预案下处置动作列表", notes = "分页查询预案下处置动作列表")
@GetMapping(value = "/plan/selectDisposalActionPage") @GetMapping(value = "/plan/selectDisposalActionPage")
public ResponseModel selectDisposalActionPage(@RequestParam(value = "current") int current, public ResponseModel selectDisposalActionPage(@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size, @RequestParam(value = "size") int size,
@RequestParam(value = "disposalId") String disposalId, @RequestParam(value = "batchNo") String batchNo,
@RequestParam(value = "dataType") int dataType @RequestParam(value = "dataType") int dataType
) { ) {
if (current < 1 || size < 1) { if (current < 1 || size < 1) {
...@@ -278,6 +240,27 @@ public class PlanVisual3dController extends BaseController { ...@@ -278,6 +240,27 @@ public class PlanVisual3dController extends BaseController {
for (Long key : user.getOrgRoles().keySet()) { for (Long key : user.getOrgRoles().keySet()) {
roleModelList.addAll(user.getOrgRoles().get(key)); roleModelList.addAll(user.getOrgRoles().get(key));
} }
return CommonResponseUtil2.success(planVisual3dService.selectDisposalActionPage(current, size, disposalId, roleModelList, dataType)); return CommonResponseUtil2.success(planVisual3dService.selectDisposalActionPage(current, size, batchNo, roleModelList, dataType));
}
@Permission
@ApiOperation(httpMethod = "GET", value = "查询预案下处置动作列表", notes = "查询预案下处置动作列表")
@GetMapping(value = "/plan/selectDisposalActionList")
public ResponseModel selectDisposalActionList(@RequestParam(value = "batchNo") String batchNo,
@RequestParam(value = "dataType") int dataType
) {
AgencyUserModel user = getUserInfo();
List<RoleModel> roleModelList = new ArrayList<>();
for (Long key : user.getOrgRoles().keySet()) {
roleModelList.addAll(user.getOrgRoles().get(key));
}
return CommonResponseUtil2.success(planVisual3dService.selectDisposalActionList(batchNo, roleModelList, dataType));
}
@Permission
@ApiOperation(value = "修改动作执行状态", notes = "修改动作执行状态")
@PostMapping(value = "/updateStatusById")
public ResponseModel updateStatusById(@RequestParam("id") String id) {
return CommonResponseUtil.successNew(planVisual3dService.updateStatusById(id));
} }
} }
...@@ -75,7 +75,7 @@ public class TimeLineController extends BaseController { ...@@ -75,7 +75,7 @@ public class TimeLineController extends BaseController {
@RequestParam("confirm") String confirm, @RequestParam("confirm") String confirm,
@RequestParam("contingencyPlanId") String contingencyPlanId, @RequestParam("contingencyPlanId") String contingencyPlanId,
@RequestParam("stepState") String stepState) throws Exception { @RequestParam("stepState") String stepState) throws Exception {
iContingencyInstance.fire(batchNo, stepCode, contingencyPlanId, buttonCode, confirm, stepState, getToken(), getProduct()); iContingencyInstance.fire(batchNo, stepCode, contingencyPlanId, buttonCode, confirm, stepState, getToken(), getProduct(), getAppKey());
return CommonResponseUtil.success("SUCCESS"); return CommonResponseUtil.success("SUCCESS");
} }
......
package com.yeejoin.amos.fas.business.dao.mapper; package com.yeejoin.amos.fas.business.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.fas.business.vo.ContingencyInstanceInfoVO;
import com.yeejoin.amos.fas.business.vo.ContingencyPlanInstanceVO;
import com.yeejoin.amos.fas.dao.entity.ContingencyInstanceInfo; import com.yeejoin.amos.fas.dao.entity.ContingencyInstanceInfo;
import com.yeejoin.amos.fas.dao.entity.ContingencyPlanInstance; import com.yeejoin.amos.fas.dao.entity.ContingencyPlanInstance;
import com.yeejoin.amos.feign.privilege.model.RoleModel; import com.yeejoin.amos.feign.privilege.model.RoleModel;
...@@ -12,7 +14,7 @@ import java.util.List; ...@@ -12,7 +14,7 @@ import java.util.List;
@Repository @Repository
public interface ContingencyInstanceInfoMapper extends BaseMapper<ContingencyInstanceInfo> { public interface ContingencyInstanceInfoMapper extends BaseMapper<ContingencyInstanceInfo> {
ContingencyInstanceInfo selectDisposalDetails(@Param("id") String id); ContingencyInstanceInfoVO selectDisposalDetails(@Param("id") String id);
Boolean addDisposalDetails(@Param("dto") ContingencyInstanceInfo contingencyInstanceInfo); Boolean addDisposalDetails(@Param("dto") ContingencyInstanceInfo contingencyInstanceInfo);
...@@ -20,12 +22,12 @@ public interface ContingencyInstanceInfoMapper extends BaseMapper<ContingencyIns ...@@ -20,12 +22,12 @@ public interface ContingencyInstanceInfoMapper extends BaseMapper<ContingencyIns
int selectCount(@Param("orgCode") String orgCode); int selectCount(@Param("orgCode") String orgCode);
List<ContingencyInstanceInfo> selectDisposalListPage(@Param("current") int current, @Param("size") int size, @Param("orgCode") String orgCode); List<ContingencyInstanceInfoVO> selectDisposalListPage(@Param("current") int current, @Param("size") int size, @Param("orgCode") String orgCode);
List<ContingencyPlanInstance> selectDisposalActionPage(@Param("current") int current, @Param("size") int size,@Param("type") String type, @Param("status") String status,@Param("list") List<String> roles ,@Param("batchNo") String batchNo); List<ContingencyPlanInstanceVO> selectDisposalActionPage(@Param("current") int current, @Param("size") int size,@Param("type") String type, @Param("status") String status,@Param("list") List<String> roles ,@Param("batchNo") String batchNo);
int selectCountDisposalActionPage(@Param("type") String type, @Param("status") String status,@Param("list") List<String> roles ,@Param("batchNo") String batchNo); int selectCountDisposalActionPage(@Param("type") String type, @Param("status") String status,@Param("list") List<String> roles ,@Param("batchNo") String batchNo);
List<ContingencyPlanInstance> selectDisposalActionList(@Param("type") String type, @Param("status") String status,@Param("list") List<String> roles ,@Param("batchNo") String batchNo); List<ContingencyPlanInstanceVO> selectDisposalActionList(@Param("type") String type, @Param("status") String status, @Param("list") List<String> roles , @Param("batchNo") String batchNo);
} }
...@@ -17,4 +17,20 @@ public interface ContingencyPlanInstanceMapper extends BaseMapper<ContingencyPla ...@@ -17,4 +17,20 @@ public interface ContingencyPlanInstanceMapper extends BaseMapper<ContingencyPla
Integer getPlanInstanceCount(@Param("batchNo") String batchNo); Integer getPlanInstanceCount(@Param("batchNo") String batchNo);
Map<String, String> getUserByUserId(@Param("userId") String userId); Map<String, String> getUserByUserId(@Param("userId") String userId);
/**
* 修改动作执行状态
* @param id
* @return
*/
Boolean updateStatusById(@Param("id") String id, @Param("content") String content);
ContingencyPlanInstance getMessageById(@Param("id") String id);
/**
* 信息更新
* @param contingencyPlanInstance
* @return
*/
Boolean updateMessageById(@Param("dto") ContingencyPlanInstance contingencyPlanInstance);
} }
package com.yeejoin.amos.fas.business.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.fas.dao.entity.WarehouseStructure;
import org.apache.ibatis.annotations.Param;
/**
* 货架结构 Mapper 接口
*
* @author wujiang
* @date 2020-07-07
*/
public interface WarehouseStructureMapper extends BaseMapper<WarehouseStructure> {
WarehouseStructure getMessageById(@Param("id")Long id);
}
...@@ -32,4 +32,10 @@ public interface PrivilegeFeign { ...@@ -32,4 +32,10 @@ public interface PrivilegeFeign {
@RequestHeader(name = "product", required = true) String product, @RequestHeader(name = "product", required = true) String product,
@RequestHeader(name = "token", required = true) String token, @RequestHeader(name = "token", required = true) String token,
@RequestParam(value = "roleIds", required = true) String roleIds); @RequestParam(value = "roleIds", required = true) String roleIds);
@RequestMapping(value = "/privilege/v1/role/list", method = RequestMethod.GET)
FeignClientResult getRoleList(@RequestHeader(name = "appKey", required = true) String appKey,
@RequestHeader(name = "product", required = true) String product,
@RequestHeader(name = "token", required = true) String token,
@RequestParam(value = "roleName", required = true) String roleName);
} }
package com.yeejoin.amos.fas.business.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.fas.business.dao.mapper.ContingencyInstanceInfoMapper;
import com.yeejoin.amos.fas.business.service.intfc.ContingencyInstanceInfoService;
import com.yeejoin.amos.fas.business.vo.ContingencyInstanceInfoVO;
import com.yeejoin.amos.fas.business.vo.ContingencyPlanInstanceVO;
import com.yeejoin.amos.fas.core.util.DateUtil;
import com.yeejoin.amos.fas.dao.entity.ContingencyInstanceInfo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.util.Date;
import java.util.List;
@Service("contingencyInstanceInfoService")
public class ContingencyInstanceInfoServiceImpl implements ContingencyInstanceInfoService {
@Autowired
private ContingencyInstanceInfoMapper contingencyInstanceInfoMapper;
@Override
public ContingencyInstanceInfoVO selectDisposalDetails(String disposalId) {
ContingencyInstanceInfoVO instanceInfo = contingencyInstanceInfoMapper.selectDisposalDetails(disposalId);
if (!ObjectUtils.isEmpty(instanceInfo.getStartTime()) && !ObjectUtils.isEmpty(instanceInfo.getEndTime())){
String datePoorToMin = getDatePoorToMin(instanceInfo.getEndTime(), instanceInfo.getStartTime());
instanceInfo.setDuration(datePoorToMin);
}
return instanceInfo;
}
@Override
public Page<ContingencyInstanceInfoVO> selectDisposalListPage(int current, int size, String orgCode) {
Page<ContingencyInstanceInfoVO> page = new Page<>(current, size);
int total = contingencyInstanceInfoMapper.selectCount(orgCode);
page.setTotal(total);
long start = (page.getCurrent() - 1) * page.getSize();
if (total == 0) {
page.setCurrent(1);
} else {
if (total < start) {
page.setCurrent(1);
start = 0;
}
List<ContingencyInstanceInfoVO> infoList = contingencyInstanceInfoMapper.selectDisposalListPage((int) start, size, orgCode);
for (ContingencyInstanceInfoVO instanceInfo : infoList) {
if (!ObjectUtils.isEmpty(instanceInfo.getStartTime()) && !ObjectUtils.isEmpty(instanceInfo.getEndTime())){
String datePoorToMin = getDatePoorToMin(instanceInfo.getEndTime(), instanceInfo.getStartTime());
instanceInfo.setDuration(datePoorToMin);
}
}
page.setRecords(infoList);
}
return page;
}
@Override
public Boolean addDisposalDetails(ContingencyInstanceInfo contingencyInstanceInfo) {
contingencyInstanceInfo.setIsDelete(false);
contingencyInstanceInfo.setCreateDate(DateUtil.getDateNow());
return contingencyInstanceInfoMapper.addDisposalDetails(contingencyInstanceInfo);
}
@Override
public Boolean updateDisposalDetails(ContingencyInstanceInfo contingencyInstanceInfo) {
return contingencyInstanceInfoMapper.updateDisposalDetails(contingencyInstanceInfo);
}
@Override
public Boolean updateEndTimeById(String id) {
ContingencyInstanceInfoVO instanceInfoVO = selectDisposalDetails(id);
ContingencyInstanceInfo instanceInfo = new ContingencyInstanceInfo();
BeanUtils.copyProperties(instanceInfoVO, instanceInfo);
if (instanceInfo != null) {
instanceInfo.setEndTime(new Date());
return contingencyInstanceInfoMapper.updateDisposalDetails(instanceInfo);
}
return false;
}
public static String getDatePoorToMin(Date endDate, Date nowDate) {
long nd = 1000 * 24 * 60 * 60;
long nh = 1000 * 60 * 60;
long nm = 1000 * 60;
long ns = 1000;
// 获得两个时间的毫秒时间差异
long diff = endDate.getTime() - nowDate.getTime();
// 计算差多少天
long day = diff / nd;
// 计算差多少小时
long hour = diff / nh;
// 计算差多少分钟
long min = diff % nh / nm;
// 计算差多少秒//输出结果
long sec = diff % nd % nh % nm / ns;
return hour + "小时" + min + "分钟 " + sec + "秒";
}
}
...@@ -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;
...@@ -70,6 +72,9 @@ public class ContingencyPlanServiceImpl implements IContingencyPlanService { ...@@ -70,6 +72,9 @@ public class ContingencyPlanServiceImpl implements IContingencyPlanService {
@Autowired @Autowired
private CustomerAction customerAction; private CustomerAction customerAction;
@Autowired
private ContingencyInstanceInfoService contingencyInstanceInfoService;
@Value("${systemctl.sync.switch}") @Value("${systemctl.sync.switch}")
private Boolean dataSyncSwitch; private Boolean dataSyncSwitch;
...@@ -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,16 @@ public class ContingencyPlanServiceImpl implements IContingencyPlanService { ...@@ -204,6 +216,16 @@ 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.getMessageById(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());
...@@ -773,6 +795,7 @@ public class ContingencyPlanServiceImpl implements IContingencyPlanService { ...@@ -773,6 +795,7 @@ public class ContingencyPlanServiceImpl implements IContingencyPlanService {
if (!planList.isEmpty()) { if (!planList.isEmpty()) {
planList.forEach(PlanOperationRecord -> { planList.forEach(PlanOperationRecord -> {
String batchNo = PlanOperationRecord.getBatchNo(); String batchNo = PlanOperationRecord.getBatchNo();
customerAction.intreeuptPlan(batchNo);
redisTemplate.delete(RiskSourceServiceImpl.cacheKeyForCanBeRunning()); redisTemplate.delete(RiskSourceServiceImpl.cacheKeyForCanBeRunning());
Optional<Equipment> equipment; Optional<Equipment> equipment;
try { try {
...@@ -785,7 +808,6 @@ public class ContingencyPlanServiceImpl implements IContingencyPlanService { ...@@ -785,7 +808,6 @@ public class ContingencyPlanServiceImpl implements IContingencyPlanService {
equip.setStatus(NumberEnum.ONE.getValue()); equip.setStatus(NumberEnum.ONE.getValue());
equipmentService.save(equip); equipmentService.save(equip);
}); });
customerAction.intreeuptPlan(batchNo);
} catch (Exception e) { } catch (Exception e) {
logger.info("预案重置失败batchNo:{}", batchNo, e); logger.info("预案重置失败batchNo:{}", batchNo, e);
e.printStackTrace(); e.printStackTrace();
...@@ -819,8 +841,18 @@ public class ContingencyPlanServiceImpl implements IContingencyPlanService { ...@@ -819,8 +841,18 @@ public class ContingencyPlanServiceImpl implements IContingencyPlanService {
} }
@Override @Override
public Boolean getPlanStatus() { public List<PlanOperationRecord> getPlanStatus() {
return CollectionUtils.isEmpty(planOperationRecordDao.findByStatus(0)); return planOperationRecordDao.findByStatus(0);
// return CollectionUtils.isEmpty(planOperationRecordDao.findByStatus(0));
}
@Override
public String getPlanBatchNo() {
List<PlanOperationRecord> records = planOperationRecordDao.findByStatus(0);
if (!CollectionUtils.isEmpty(records)) {
return records.get(0).getBatchNo();
}
return "";
} }
@Override @Override
...@@ -829,10 +861,15 @@ public class ContingencyPlanServiceImpl implements IContingencyPlanService { ...@@ -829,10 +861,15 @@ public class ContingencyPlanServiceImpl implements IContingencyPlanService {
List<PlanOperationRecord> recordList = planOperationRecordDao.findByStatus(0); List<PlanOperationRecord> recordList = planOperationRecordDao.findByStatus(0);
if (!CollectionUtils.isEmpty(recordList)) { if (!CollectionUtils.isEmpty(recordList)) {
PlanOperationRecord record = recordList.get(0); PlanOperationRecord record = recordList.get(0);
map.put("planName", record.getBatchNo()); String batchNo = record.getBatchNo();
List<ContingencyPlanInstance> list = planVisual3dService.selectDisposalActionList(record.getBatchNo(), roleModelList, 1); ContingencyInstanceInfoVO instanceInfo = contingencyInstanceInfoService.selectDisposalDetails(batchNo);
if (instanceInfo != null) {
map.put("planName", instanceInfo.getName());
map.put("batchNo", batchNo);
List<ContingencyPlanInstanceVO> list = planVisual3dService.selectDisposalActionList(batchNo, roleModelList, 1);
map.put("taskNum", list.size()); map.put("taskNum", list.size());
} }
}
return map; return map;
} }
......
...@@ -108,13 +108,9 @@ public class EquipmentFireEquipmentServiceImpl implements IEquipmentFireEquipmen ...@@ -108,13 +108,9 @@ public class EquipmentFireEquipmentServiceImpl implements IEquipmentFireEquipmen
Integer total = Integer.parseInt(map.get("total").toString()); Integer total = Integer.parseInt(map.get("total").toString());
Integer count = Integer.parseInt(map.get("count").toString()); Integer count = Integer.parseInt(map.get("count").toString());
if (SqlKeyWordEnum.AND.getKey().equalsIgnoreCase(type)) { if (SqlKeyWordEnum.AND.getKey().equalsIgnoreCase(type)) {
if (total.equals(count)) { return total.equals(count);
return true;
}
} else if (SqlKeyWordEnum.OR.getKey().equalsIgnoreCase(type)) { } else if (SqlKeyWordEnum.OR.getKey().equalsIgnoreCase(type)) {
if (count != 0) { return count != 0;
return true;
}
} }
} }
return false; return false;
......
...@@ -17,7 +17,6 @@ import com.yeejoin.amos.fas.business.dao.repository.IEquipmentDao; ...@@ -17,7 +17,6 @@ import com.yeejoin.amos.fas.business.dao.repository.IEquipmentDao;
import com.yeejoin.amos.fas.business.dao.repository.IRiskLevelDao; import com.yeejoin.amos.fas.business.dao.repository.IRiskLevelDao;
import com.yeejoin.amos.fas.business.dao.repository.IRiskSourceDao; import com.yeejoin.amos.fas.business.dao.repository.IRiskSourceDao;
import com.yeejoin.amos.fas.business.dao.repository.ISafetyIndexChangeLogDao; import com.yeejoin.amos.fas.business.dao.repository.ISafetyIndexChangeLogDao;
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.service.intfc.IDataRefreshService; import com.yeejoin.amos.fas.business.service.intfc.IDataRefreshService;
...@@ -57,10 +56,6 @@ import java.util.*; ...@@ -57,10 +56,6 @@ import java.util.*;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
//import com.yeejoin.amos.fas.business.dao.repository.IWaterResourceDao;
//import com.yeejoin.amos.fas.dao.entity.FireStation;
//import com.yeejoin.amos.fas.dao.entity.WaterResource;
/** /**
* @author DELL * @author DELL
*/ */
...@@ -74,11 +69,9 @@ public class View3dServiceImpl implements IView3dService { ...@@ -74,11 +69,9 @@ public class View3dServiceImpl implements IView3dService {
@Autowired @Autowired
private IRiskSourceDao iRiskSourceDao; private IRiskSourceDao iRiskSourceDao;
@Autowired @Autowired
private IEquipmentDao iEquipmentDao; private IEquipmentDao iEquipmentDao;
// @Autowired
// private IWaterResourceDao iWaterResourceDao;
@Autowired @Autowired
private PatrolMapper patrolMapper; private PatrolMapper patrolMapper;
@Autowired @Autowired
...@@ -87,9 +80,6 @@ public class View3dServiceImpl implements IView3dService { ...@@ -87,9 +80,6 @@ public class View3dServiceImpl implements IView3dService {
private ISafetyIndexChangeLogDao iSafetyIndexChangeLogDao; private ISafetyIndexChangeLogDao iSafetyIndexChangeLogDao;
@Autowired @Autowired
private IDutyModeServer dutyModeServer;
@Autowired
private JcsFeign jcsFeign; private JcsFeign jcsFeign;
@Value("${param.system.online.date}") @Value("${param.system.online.date}")
...@@ -134,11 +124,7 @@ public class View3dServiceImpl implements IView3dService { ...@@ -134,11 +124,7 @@ public class View3dServiceImpl implements IView3dService {
this.updateFireCarPosition(pointBo); this.updateFireCarPosition(pointBo);
case "fireChamber": case "fireChamber":
case "fireFoamRoom": case "fireFoamRoom":
// this.updateFireStationPosition(pointBo);
// break;
case "hydrant": case "hydrant":
// case "pool":
// this.updateWaterSourcePosition(pointBo);
break; break;
default: default:
log.error("不支持的类型-->" + pointType); log.error("不支持的类型-->" + pointType);
...@@ -160,34 +146,6 @@ public class View3dServiceImpl implements IView3dService { ...@@ -160,34 +146,6 @@ public class View3dServiceImpl implements IView3dService {
// } // }
} }
// public void updateWaterSourcePosition(BindPointBo pointBo) {
// Optional<WaterResource> data = iWaterResourceDao.findById(pointBo.getPointId());
// if(data.isPresent()){
// WaterResource waterResource = data.get();
// String ue4Location = pointBo.getUe4Location();
// String ue4Rotation = pointBo.getUe4Rotation();
// String position3d = pointBo.getPosition3d();
// if(ue4Location != null) waterResource.setUe4Location(ue4Location);
// if(ue4Rotation != null) waterResource.setUe4Rotation(ue4Rotation);
// if(position3d != null) waterResource.setPosition3d(position3d);
// iWaterResourceDao.save(waterResource);
// }
// }
// public void updateFireStationPosition(BindPointBo pointBo) {
// Optional<FireStation> data = iFireStationDao.findById(pointBo.getPointId());
// if(data.isPresent()){
// FireStation fireStation = data.get();
// String ue4Location = pointBo.getUe4Location();
// String ue4Rotation = pointBo.getUe4Rotation();
// String position3d = pointBo.getPosition3d();
// if(ue4Location != null) fireStation.setUe4Location(ue4Location);
// if(ue4Rotation != null) fireStation.setUe4Rotation(ue4Rotation);
// if(position3d != null) fireStation.setPosition3d(position3d);
// iFireStationDao.save(fireStation);
// }
// }
public void updateFireEquipmentPosition(BindPointBo pointBo) { public void updateFireEquipmentPosition(BindPointBo pointBo) {
// Optional<FireEquipment> data = iFireEquipmentDao.findById(pointBo.getPointId()); // Optional<FireEquipment> data = iFireEquipmentDao.findById(pointBo.getPointId());
// if(data.isPresent()){ // if(data.isPresent()){
......
package com.yeejoin.amos.fas.business.service.intfc;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.fas.business.vo.ContingencyInstanceInfoVO;
import com.yeejoin.amos.fas.dao.entity.ContingencyInstanceInfo;
public interface ContingencyInstanceInfoService {
ContingencyInstanceInfoVO selectDisposalDetails(String batchNo);
Page<ContingencyInstanceInfoVO> selectDisposalListPage(int current, int size, String orgCode);
Boolean addDisposalDetails(ContingencyInstanceInfo contingencyInstanceInfo);
Boolean updateDisposalDetails(ContingencyInstanceInfo contingencyInstanceInfo);
/**
* 通过ID更新预案的结束时间
* @param id
* @return
*/
Boolean updateEndTimeById(String id);
}
...@@ -23,5 +23,26 @@ public interface IContingencyInstance { ...@@ -23,5 +23,26 @@ 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, String appKey) throws Exception;
/**
* 扩展属性赋值
* @param contingencyPlanInstance
* @return
*/
ContingencyPlanInstance updateExtendColumn(ContingencyPlanInstance contingencyPlanInstance);
/**
* 根据id 查询信息
* @param id
* @return
*/
ContingencyPlanInstance getMessageById(String id);
/**
* 通过buttonCode获取执行角色编码
* @param buttonCode
* @return
*/
String getPlanStepRoleCodeByButtonCode(String buttonCode);
} }
...@@ -6,6 +6,7 @@ import com.yeejoin.amos.fas.business.vo.ContingencyPlanResponseVo; ...@@ -6,6 +6,7 @@ import com.yeejoin.amos.fas.business.vo.ContingencyPlanResponseVo;
import com.yeejoin.amos.fas.business.vo.PlanDetailVo; import com.yeejoin.amos.fas.business.vo.PlanDetailVo;
import com.yeejoin.amos.fas.business.vo.Toke; import com.yeejoin.amos.fas.business.vo.Toke;
import com.yeejoin.amos.fas.dao.entity.PlanDetail; import com.yeejoin.amos.fas.dao.entity.PlanDetail;
import com.yeejoin.amos.fas.dao.entity.PlanOperationRecord;
import com.yeejoin.amos.fas.exception.YeeException; import com.yeejoin.amos.fas.exception.YeeException;
import com.yeejoin.amos.feign.privilege.model.RoleModel; import com.yeejoin.amos.feign.privilege.model.RoleModel;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -136,7 +137,9 @@ public interface IContingencyPlanService { ...@@ -136,7 +137,9 @@ public interface IContingencyPlanService {
AtomicBoolean planReset(); AtomicBoolean planReset();
Boolean getPlanStatus(); List<PlanOperationRecord> getPlanStatus();
Map<String, Object> getUserOperateCountAndPlanName(List<RoleModel> roleModelList); Map<String, Object> getUserOperateCountAndPlanName(List<RoleModel> roleModelList);
String getPlanBatchNo();
} }
...@@ -3,7 +3,10 @@ package com.yeejoin.amos.fas.business.service.intfc; ...@@ -3,7 +3,10 @@ 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.ContingencyPlanInstanceVO;
import com.yeejoin.amos.fas.business.vo.MessageVO;
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;
import com.yeejoin.amos.fas.core.common.request.CommonPageable; import com.yeejoin.amos.fas.core.common.request.CommonPageable;
...@@ -83,25 +86,51 @@ public interface IPlanVisual3dService { ...@@ -83,25 +86,51 @@ public interface IPlanVisual3dService {
PlanStepVo updatePlanStep(PlanStepVo planStepVo); PlanStepVo updatePlanStep(PlanStepVo planStepVo);
ContingencyInstanceInfo selectDisposalDetails(String disposalId); Page<ContingencyPlanInstanceVO> selectDisposalActionPage(int current, int size, String batchNo , List<RoleModel> roleModelList, int dataType);
Page<ContingencyInstanceInfo> selectDisposalListPage(int current, int size, String orgCode);
Boolean addDisposalDetails(ContingencyInstanceInfo contingencyInstanceInfo);
Boolean updateDisposalDetails(ContingencyInstanceInfo contingencyInstanceInfo);
Page<ContingencyPlanInstance> selectDisposalActionPage(int current, int size, String disposalId , List<RoleModel> roleModelList, int dataType);
/** /**
* 根据批次号获取预案的消息等记录 * 根据批次号获取预案的消息等记录
* @param batchNo * @param batchNo
* @return * @return
*/ */
Page<ContingencyPlanInstance> getPlaneRecordByNew(Integer pageNum, Integer size, String batchNo); Page<ContingencyPlanInstanceVO> getPlaneRecordByNew(Integer pageNum, Integer size, String batchNo, AgencyUserModel user);
ContingencyPlanInstance replyMessage(AgencyUserModel user, ContingencyPlanInstance dto);
List<ContingencyPlanInstanceVO> selectDisposalActionList(String batchNo , List<RoleModel> roleModelList, int dataType);
// /**
// * 极光推送
// * @param json 消息体
// * @param buttonCode 按钮编码
// */
// void sendMessage(String json, String buttonCode);
//
// /**
// * 极光推送
// * @param buttonCode 按钮编码
// */
// void sendMessage(String buttonCode);
//
// /**
// * 极光推送
// * @param buttonCode 按钮编码
// * @param pushMsgParam 消息体
// */
// void sendMessage(String buttonCode, PushMsgParam pushMsgParam);
void replyMessage(AgencyUserModel user, ContingencyPlanInstance dto); /**
* 消息推送
* @param buttonCode
* @param messageVO
*/
void sendMessage(String buttonCode, MessageVO messageVO);
List<ContingencyPlanInstance> selectDisposalActionList(String disposalId , List<RoleModel> roleModelList, int dataType);
/**
* 修改动作执行状态
* @param id
* @return
*/
boolean updateStatusById(String id);
} }
package com.yeejoin.amos.fas.business.vo;
import lombok.Data;
import java.util.List;
import java.util.Map;
@Data
public class ButtonJsonVO {
String type;
String stepCode;
List<Map<String, Object>> operate;
}
package com.yeejoin.amos.fas.business.vo;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.Date;
@Data
@ApiModel(value = "应急预案执行记录实例", description = "应急预案执行记录实例")
public class ContingencyInstanceInfoVO {
private String id;
private String name;
private String position;
private String equipmentCode;
private String equipmentName;
private Date startTime;
private Date endTime;
private Boolean isDelete = false;
private Date createDate;
private String orgCode;
private String duration;
}
package com.yeejoin.amos.fas.business.vo;
import lombok.Data;
import java.util.Date;
@Data
public class ContingencyPlanInstanceVO {
protected String id;
private String recordType;// 记录类型:消息MESSAGE,操作OPERATE ,回复消息REPLYMESSAGE
private String content ;// 记录内容:文本信息或者json数据
private String category;//一级分类
private String icon ; //图标,url,或者文件名
private Integer sort ;// 所有节点一起的排序号
private String sequenceNum ;// 用于显示的序号
private String batchNo ;// 预案实例编号,暂时无法区分多个火灾,暂时存储报警设备id
private String tips;
private Boolean runstate;
private String filePath; //文件名称
private String fileType;// 文件类型
private String roleName; //角色名称
private String roleCode; //角色编码
private String startUserName; //人员名称
private String startUserId; //人员ID
private String personImg;
private String playImg;
private String loginUserId;
private String name;
private Date createDate;
private String createUser;
private Date updateDate;
private String updateUser;
private Boolean isDelete = false;
}
...@@ -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;
......
package com.yeejoin.amos.fas.business.vo;
import lombok.Data;
import java.util.List;
@Data
public class MessageVO {
/**
* 接收人ids
*/
private List<String> recivers;
/**
* 关联id
*/
private String relationId;
private String title;
private String body;
/**
* 任务 0 通知 1
*/
private Integer category;
private String msgType;
private String terminal;
private Boolean isRead;
private Boolean isSendApp;
private Boolean isSendWeb;
}
package com.yeejoin.amos.fas.business.vo;
import lombok.Data;
@Data
public class PlanStepJsonVO {
private String stepCode;
private String stepName;
private String stepStatus;
private String isParallel;
private String roleCode;
private String buttonCode;
}
...@@ -57,6 +57,13 @@ emqx.password=public ...@@ -57,6 +57,13 @@ emqx.password=public
#文件服务器地址 #文件服务器地址
file.downLoad.url=http://172.16.11.201:9000/ file.downLoad.url=http://172.16.11.201:9000/
#应急处置移动端默认头像地址
plan.instance.personImg=upload/3dview_icon/plan_via.png
plan.instance.playImg=upload/3dview_icon/plan_play.png
#应急预案动作执行默认角色编码
plan.default.roleCode=Digital_Responsing_Plan_A
# 是否使用rocketmq on/off # 是否使用rocketmq on/off
rocketmq.producer.sysIsUsed=off rocketmq.producer.sysIsUsed=off
#rocketmq生产者配置 #rocketmq生产者配置
......
...@@ -811,4 +811,14 @@ ...@@ -811,4 +811,14 @@
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '应急预案执行记录实例' ROW_FORMAT = Dynamic; ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '应急预案执行记录实例' ROW_FORMAT = Dynamic;
</sql> </sql>
</changeSet> </changeSet>
<changeSet author="gaojianqiang" id="20221026-01">
<preConditions onFail="MARK_RAN">
<columnExists tableName="contingency_plan_instance" columnName="update_date"/>
</preConditions>
<comment>修改属性字段 update_date</comment>
<sql>
ALTER TABLE `contingency_plan_instance`
MODIFY COLUMN `update_date` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) AFTER `create_user`;
</sql>
</changeSet>
</databaseChangeLog> </databaseChangeLog>
\ No newline at end of file
...@@ -20,11 +20,11 @@ ...@@ -20,11 +20,11 @@
</update> </update>
<select id="selectDisposalDetails" resultType="com.yeejoin.amos.fas.dao.entity.ContingencyInstanceInfo"> <select id="selectDisposalDetails" resultType="com.yeejoin.amos.fas.business.vo.ContingencyInstanceInfoVO">
select * from contingency_instance_info where id=#{id} select * from contingency_instance_info where id=#{id}
</select> </select>
<select id="selectDisposalListPage" resultType="com.yeejoin.amos.fas.dao.entity.ContingencyInstanceInfo"> <select id="selectDisposalListPage" resultType="com.yeejoin.amos.fas.business.vo.ContingencyInstanceInfoVO">
select * from contingency_instance_info where is_delete = 0 select * from contingency_instance_info where is_delete = 0
and org_code = #{orgCode} and org_code = #{orgCode}
ORDER BY create_date DESC ORDER BY create_date DESC
...@@ -34,25 +34,34 @@ ...@@ -34,25 +34,34 @@
select count(1) from contingency_instance_info select count(1) from contingency_instance_info
where is_delete = 0 and org_code = #{orgCode} where is_delete = 0 and org_code = #{orgCode}
</select> </select>
<select id="selectDisposalActionPage" resultType="com.yeejoin.amos.fas.dao.entity.ContingencyPlanInstance"> <select id="selectDisposalActionPage" resultType="com.yeejoin.amos.fas.business.vo.ContingencyPlanInstanceVO">
select * from contingency_plan_instance select cpi.id, cpi.`record_type`, cpi.`category`, cpi.`content`, cpi.`icon`, cpi.`sort`, cpi.`sequence_num`
, cpi.`batch_no`, cpi.`create_date`, cpi.`create_user`, cpi.`update_date`
, cpi.`update_user`, cpi.`is_delete`, cpi.`tips`, IFNULL(cpi.`runstate`, 0) AS runstate, cpi.`file_path`
, `file_type`, `role_name`, `role_code`, `start_user_name`
, cpi.`start_user_id`, cpi.`person_img`,cii.name
from contingency_plan_instance cpi left join contingency_instance_info cii
on cpi.batch_no = cii.id
<where> <where>
<if test="batchNo != null and batchNo != ''"> <if test="batchNo != null and batchNo != ''">
batch_no = #{batchNo} cpi.batch_no = #{batchNo}
</if> </if>
<if test="type != null and type != ''"> <if test="type != null and type != ''">
and record_type = #{type} and cpi.record_type = #{type}
</if> </if>
<if test="status != null and status != ''"> <if test="status != null and status != ''">
and runstate = #{status} and cpi.runstate is null
</if> </if>
<if test="list != null and list.size() >0"> <if test="list != null and list.size() >0">
<foreach collection="list" item="role" index="index" open="and (" close=") " separator="or"> <foreach collection="list" item="role" index="index" open="and (" close=") " separator="or">
role_code like concat('%',#{role},'%') cpi.role_code like concat('%',#{role},'%')
</foreach> </foreach>
</if> </if>
</where> </where>
order by cpi.`create_date`
LIMIT #{current}, #{size} LIMIT #{current}, #{size}
</select> </select>
<select id="selectCountDisposalActionPage" resultType="java.lang.Integer"> <select id="selectCountDisposalActionPage" resultType="java.lang.Integer">
...@@ -65,7 +74,7 @@ ...@@ -65,7 +74,7 @@
and record_type = #{type} and record_type = #{type}
</if> </if>
<if test="status != null and status != ''"> <if test="status != null and status != ''">
and runstate = #{status} and runstate is null
</if> </if>
<if test="list != null and list.size() >0"> <if test="list != null and list.size() >0">
...@@ -76,25 +85,32 @@ ...@@ -76,25 +85,32 @@
</where> </where>
</select> </select>
<select id="selectDisposalActionList" resultType="com.yeejoin.amos.fas.dao.entity.ContingencyPlanInstance"> <select id="selectDisposalActionList" resultType="com.yeejoin.amos.fas.business.vo.ContingencyPlanInstanceVO">
select * from contingency_plan_instance select cpi.id, cpi.`record_type`, cpi.`category`, cpi.`content`, cpi.`icon`, cpi.`sort`, cpi.`sequence_num`
, cpi.`batch_no`, cpi.`create_date`, cpi.`create_user`, cpi.`update_date`
, cpi.`update_user`, cpi.`is_delete`, cpi.`tips`, IFNULL(cpi.`runstate`, 0) AS runstate, cpi.`file_path`
, `file_type`, `role_name`, `role_code`, `start_user_name`
, cpi.`start_user_id`, cpi.`person_img`,cii.name
from contingency_plan_instance cpi left join contingency_instance_info cii
on cpi.batch_no = cii.id
<where> <where>
<if test="batchNo != null and batchNo != ''"> <if test="batchNo != null and batchNo != ''">
batch_no = #{batchNo} cpi.batch_no = #{batchNo}
</if> </if>
<if test="type != null and type != ''"> <if test="type != null and type != ''">
and record_type = #{type} and cpi.record_type = #{type}
</if> </if>
<if test="status != null and status != ''"> <if test="status != null and status != ''">
and runstate = #{status} and cpi.runstate is null
</if> </if>
<if test="list != null and list.size() >0"> <if test="list != null and list.size() >0">
<foreach collection="list" item="role" index="index" open="and (" close=") " separator="or"> <foreach collection="list" item="role" index="index" open="and (" close=") " separator="or">
role_code like concat('%',#{role},'%') cpi.role_code like concat('%',#{role},'%')
</foreach> </foreach>
</if> </if>
</where> </where>
order by cpi.`create_date`
</select> </select>
</mapper> </mapper>
...@@ -2,12 +2,54 @@ ...@@ -2,12 +2,54 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.fas.business.dao.mapper.ContingencyPlanInstanceMapper"> <mapper namespace="com.yeejoin.amos.fas.business.dao.mapper.ContingencyPlanInstanceMapper">
<update id="updateStatusById">
UPDATE
contingency_plan_instance
SET
runstate = 1
<if test="content != null and content != ''">
, content = #{content}
</if>
where id = #{id}
</update>
<update id="updateMessageById">
UPDATE `contingency_plan_instance`
SET
<if test="dto.recordType != null and dto.recordType != ''">
`record_type` = #{dto.recordType},
</if>
<if test="dto.content != null and dto.content != ''">
`content` = #{dto.content},
</if>
`category` = #{dto.category},
`icon` = #{dto.icon},
`sort` = #{dto.sort},
`sequence_num` = #{dto.sequenceNum},
<if test="dto.batchNo != null and dto.batchNo != ''">
`batch_no` = #{dto.batchNo},
</if>
`update_date` = NOW(),
`update_user` = #{dto.updateUser},
`tips` = #{dto.tips},
`runstate` = #{dto.runstate},
`file_path` = #{dto.filePath},
`file_type` = #{dto.fileType},
`role_name` = #{dto.roleName},
`role_code` = #{dto.roleCode},
`start_user_name` = #{dto.startUserName},
`start_user_id` = #{dto.startUserId},
`person_img` = #{dto.personImg}
WHERE
`id` = #{dto.id};
</update>
<select id="getPlanInstanceListByPage" resultType="com.yeejoin.amos.fas.dao.entity.ContingencyPlanInstance"> <select id="getPlanInstanceListByPage" resultType="com.yeejoin.amos.fas.dao.entity.ContingencyPlanInstance">
select * from select * from
contingency_plan_instance contingency_plan_instance
where batch_no = #{batchNo} where batch_no = #{batchNo}
AND record_type in ('REPLYMESSAGE', 'MESSAGE') AND record_type in ('REPLYMESSAGE', 'MESSAGE')
AND is_delete = 0
order by create_date DESC order by create_date DESC
limit #{pageNum}, #{size} limit #{pageNum}, #{size}
</select> </select>
...@@ -17,6 +59,7 @@ ...@@ -17,6 +59,7 @@
contingency_plan_instance contingency_plan_instance
where batch_no = #{batchNo} where batch_no = #{batchNo}
AND record_type in ('REPLYMESSAGE', 'MESSAGE') AND record_type in ('REPLYMESSAGE', 'MESSAGE')
AND is_delete = 0
</select> </select>
<select id="getUserByUserId" resultType="java.util.Map"> <select id="getUserByUserId" resultType="java.util.Map">
...@@ -25,4 +68,7 @@ ...@@ -25,4 +68,7 @@
ifnull(personImg, "") as personImg ifnull(personImg, "") as personImg
from cb_org_usr where amos_org_id = #{userId} and is_delete = 0 limit 1 from cb_org_usr where amos_org_id = #{userId} and is_delete = 0 limit 1
</select> </select>
<select id="getMessageById" resultType="com.yeejoin.amos.fas.dao.entity.ContingencyPlanInstance">
select * from contingency_plan_instance where id = #{id}
</select>
</mapper> </mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.fas.business.dao.mapper.WarehouseStructureMapper">
<select id="getMessageById" resultType="com.yeejoin.amos.fas.dao.entity.WarehouseStructure">
select * from wl_warehouse_structure where id = #{id}
</select>
</mapper>
\ No newline at end of file
...@@ -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
......
...@@ -117,6 +117,6 @@ ...@@ -117,6 +117,6 @@
"stepStatus": "0", "stepStatus": "0",
"buttonCode": "END_EMERGENCY", "buttonCode": "END_EMERGENCY",
"isParallel": "1", "isParallel": "1",
"roleCode": "Digital_Responsing_Plan_C" "roleCode": "Digital_Responsing_Plan_B"
} }
] ]
\ No newline at end of file
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