Commit 9f17a7a1 authored by tianbo's avatar tianbo

隐患工作流调试

parent 16d3d4a8
package com.yeejoin.amos.latentdanger.dao.entity;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
......@@ -25,7 +27,7 @@ import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("cb_latent_danger")
@TableName(value = "cb_latent_danger", autoResultMap = true)
@ApiModel(value="LatentDanger", description="隐患信息")
public class LatentDanger extends BasicEntity {
private static final long serialVersionUID = 1L;
......@@ -33,172 +35,140 @@ public class LatentDanger extends BasicEntity {
/**
* 业务唯一标识
*/
@Column(name = "business_key")
private String businessKey;
/**
* 公司组织机构
*/
@Column(name = "org_code")
private String orgCode;
/**
* 隐患名称
*/
@Column(name = "danger_name")
private String dangerName;
@Column(name = "instance_id")
private String instanceId;
@Column(name = "current_flow_record_id")
private Long currentFlowRecordId;
/**
* 隐患等级(1:一般隐患;2:重大隐患;0:安全问题)
*/
@Column(name = "danger_level")
private String dangerLevel;
/**
* 隐患等级名称
*/
@Column(name = "danger_level_name")
private String dangerLevelName;
/**
* 隐患地点
*/
@Column(name = "danger_position")
private String dangerPosition;
/**
* 隐患类型(1:普通隐患;2:巡检隐患)
*/
@Column(name = "danger_type")
private String dangerType;
/**
* 隐患类型名称
*/
@Column(name = "danger_type_name")
private String dangerTypeName;
/**
* 备注
*/
@Column(name = "remark")
private String remark;
/**
* 整改类型(1:常规整改;2:安措计划;3:延期整改)
*/
@Column(name = "reform_type")
private String reformType;
/**
* 整改类型名称
*/
@Column(name = "reform_type_name")
private String reformTypeName;
/**
* 限制时间
*/
@Column(name = "reform_limit_date")
private Date reformLimitDate;
@Column(name = "overtime_state")
private Integer overtimeState;
@Column(name = "reform_json")
private String reformJson;
/**
* 隐患状态(1:待评审;2:待治理;3:安措计划中;4:逾期未治理;5:待验证;6:治理完毕;7:已撤销)
*/
@Column(name = "danger_state")
private String dangerState;
/**
* 隐患状态名称
*/
@Column(name = "danger_state_name")
private String dangerStateName;
/**
* 发现人
*/
@Column(name = "discoverer_user_id")
private String discovererUserId;
@Column(name = "discoverer_department_id")
private String discovererDepartmentId;
@Column(name = "photo_urls")
private String photoUrls;
/**
* 是否删除(0:否;1:是)
*/
@Column(name = "deleted")
private Boolean deleted;
/**
* 记录修改时间
*/
@Column(name = "update_date")
private Date updateDate;
/**
* 延期治理时间
*/
@Column(name = "delay_limit_date")
private Date delayLimitDate;
/**
* 问题描述
*/
@Column(name = "problem_description")
private String problemDescription;
/**
* 原因分析
*/
@Column(name = "reason_analysis")
private String reasonAnalysis;
/**
* 举一反三
*/
@Column(name = "infer_other_things")
private String inferOtherThings;
/**
* 检查记录创建的隐患检查项对应id
*/
@Column(name = "biz_id")
private Long bizId;
/**
* 建筑id
*/
@Column(name = "structure_id")
private Long structureId;
/**
* 建筑名称
*/
@Column(name = "structure_name")
private String structureName;
@Column(name = "instance_key")
private String instanceKey;
/**
* 业务类型(不同业务创建的隐患以此区分:巡检隐患、防火监督隐患、其他隐患。。。)
*/
@Column(name = "biz_type")
private String bizType;
/**
......@@ -214,6 +184,19 @@ public class LatentDanger extends BasicEntity {
/**
* 业务信息
*/
@Column(name = "biz_info")
private String bizInfo;
@TableField(typeHandler = JacksonTypeHandler.class)
private JSONObject bizInfo;
/**
* 是否审核状态
*/
@TableField(exist = false)
private Boolean unReviewed;
public Boolean getUnReviewed() {
if ("dangerSubmit".equals(this.getDangerState())) {
return true;
}
return false;
}
}
......@@ -146,6 +146,9 @@ public class LatentDangerController extends BaseController {
String userId = user.getUserId();
DangerExecuteSubmitDto executeSubmitDto = iLatentDangerService.execute(latentDangerExecuteParam, userId,
userRealName, deptId, departmentName, reginParams);
if (!executeSubmitDto.getIsOk()) {
throw new Exception(executeSubmitDto.getMsg());
}
// iLatentDangerService.freshRiskJudgmentLangerCount(latentDangerExecuteParam);//更新统计
// 执行通过,发送执行结果消息
// if (executeSubmitDto.getIsOk()) {
......@@ -317,4 +320,15 @@ public class LatentDangerController extends BaseController {
return ResponseHelper.buildResponse(iLatentDangerService.dangerAudit(latentDangerDto, executeType, userId,
userRealName, deptId, departmentName, reginParams));
}
/**
* 隐患审核分页列表
*/
@ApiOperation(value = "隐患审核分页列表", notes = "隐患审核分页列表")
@PostMapping(value = "/supervision/page/reviewList")
@TycloudOperation(ApiLevel = UserType.AGENCY)
public ResponseModel reviewListDanger(@ApiParam(value = "查询条件", required = true) @RequestBody PageParam pageParam) throws Exception {
IPage<LatentDanger> result = iLatentDangerService.reviewListDanger(pageParam);
return ResponseHelper.buildResponse(result);
}
}
......@@ -6,6 +6,7 @@ import lombok.Data;
import javax.persistence.Column;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @author tb
......@@ -134,4 +135,10 @@ public class LatentDangerDto {
* 业务信息
*/
private JSONObject bizInfo;
/**
* 是否审核状态
*/
private Boolean unReviewed;
}
......@@ -1139,17 +1139,15 @@ public class LatentDangerServiceImpl extends BaseService<LatentDangerBo, LatentD
String departmentName,
DangerExecuteSubmitDto executeSubmitDto,
ReginParams reginParams) throws Exception {
// TODO 查询隐患的巡查信息
JSONObject bizInfo = JSONObject.parseObject(latentDanger.getBizInfo());
if (ValidationUtil.isEmpty(bizInfo)) {
// 隐患的巡查信息
JSONObject bizInfo = latentDanger.getBizInfo();
if (ValidationUtil.isEmpty(bizInfo) || ValidationUtil.isEmpty(bizInfo.get("planType")) || ValidationUtil.isEmpty(bizInfo.get("accompanyingUserId"))) {
executeSubmitDto.setIsOk(false);
executeSubmitDto.setMsg("业务信息错误");
return executeSubmitDto;
}
String planType = ValidationUtil.isEmpty(bizInfo.get("planType")) ? "special" :
bizInfo.get("planType").toString();
String taskUserId = ValidationUtil.isEmpty(bizInfo.get("taskUserId")) ? userId :
bizInfo.get("taskUserId").toString();
String planType = bizInfo.get("planType").toString();
String taskUserId = bizInfo.get("accompanyingUserId").toString();
String processInstanceId = latentDanger.getInstanceId();
String currentDangerState = latentDanger.getDangerState();
......@@ -1191,6 +1189,7 @@ public class LatentDangerServiceImpl extends BaseService<LatentDangerBo, LatentD
return executeSubmitDto;
}
// 工作流条件执行
if (LatentDangerState.SupervisionDangerStateEnum.现场确认.getCode().equals(latentDanger.getDangerState())) {
condition = planType;
} else {
......@@ -1198,40 +1197,40 @@ public class LatentDangerServiceImpl extends BaseService<LatentDangerBo, LatentD
}
// 执行任务(带权限校验)
Boolean executeResult = workflowExecuteService.CompleteTask(processInstanceId, condition, reginParams);
// 校验权限
// Boolean executeResult = workflowExecuteService.excuteTask(processInstanceId, condition);
boolean executeResult = workflowExecuteService.CompleteTask(processInstanceId, condition, reginParams);
if (!executeResult) {
executeSubmitDto.setIsOk(false);
executeResultMsg = "任务执行失败";
}
String nextState = "";
String nextStateName = "";
if (ExecuteTypeEnum.通过.getCode().equals(param.getExecuteType())) {
// 执行成功更新隐患状态
LatentDangerState.SupervisionDangerStateEnum nextStateEnum =
LatentDangerState.SupervisionDangerStateEnum.getEnumByCode(currentStateEnum.getNext());
nextState = nextStateEnum.getCode();
nextStateName = nextStateEnum.getName();
// 当隐患状态是现场确认时,在执行完节点后需要将检查组长id设置为下个节点执行人
if (LatentDangerState.SupervisionDangerStateEnum.现场确认.getCode().equals(currentDangerState)) {
Object result = workflowExecuteService.setTaskAssign(processInstanceId, taskUserId);
if (!(Boolean) result) {
executeSubmitDto.setIsOk(false);
executeResultMsg = "设置节点执行人失败";
// 单位检查提交整改资料的下一节点需特殊处理
if ("supervised".equals(planType)) {
if (LatentDangerState.SupervisionDangerStateEnum.提交整改资料.getCode().equals(currentDangerState)) {
nextStateEnum = LatentDangerState.SupervisionDangerStateEnum.整改检查组长确认;
}
if (LatentDangerState.SupervisionDangerStateEnum.整改检查组长确认.getCode().equals(currentDangerState)) {
nextStateEnum = LatentDangerState.SupervisionDangerStateEnum.整改检查负责人确认;
}
if (LatentDangerState.SupervisionDangerStateEnum.整改检查负责人确认.getCode().equals(currentDangerState)) {
nextStateEnum = LatentDangerState.SupervisionDangerStateEnum.整改检查分管领导确认;
}
}
nextState = nextStateEnum.getCode();
nextStateName = nextStateEnum.getName();
if (("supervised".equals(planType) &&
LatentDangerState.SupervisionDangerStateEnum.整改检查分管领导确认.getCode().equals(currentDangerState))
|| LatentDangerState.SupervisionDangerStateEnum.整改二次审核确认.getCode().equals(currentDangerState)) {
latentDanger.setDangerState(LatentDangerState.SupervisionDangerStateEnum.整改完毕.getCode());
latentDanger.setDangerStateName(LatentDangerState.SupervisionDangerStateEnum.整改完毕.getName());
executeResultMsg = latentDanger.getDangerStateName() + ExecuteTypeEnum.通过.getName();
}
executeResultMsg = latentDanger.getDangerStateName() + ExecuteTypeEnum.通过.getName();
} else {
LatentDangerState.SupervisionDangerStateEnum nextStateEnum =
LatentDangerState.SupervisionDangerStateEnum.getEnumByCode(currentStateEnum.getRejectNext());
......@@ -1242,6 +1241,15 @@ public class LatentDangerServiceImpl extends BaseService<LatentDangerBo, LatentD
latentDanger.setDangerState(nextState);
latentDanger.setDangerStateName(nextStateName);
// 当隐患状态是现场确认时,在执行完节点后需要将检查组长id设置为下个节点执行人
if (LatentDangerState.SupervisionDangerStateEnum.现场确认.getCode().equals(currentDangerState)) {
Object result = workflowExecuteService.setTaskAssign(processInstanceId, taskUserId);
if (!(Boolean) result) {
executeSubmitDto.setIsOk(false);
executeResultMsg = "设置节点执行人失败";
}
}
// 整改分配责任人
if (LatentDangerState.SupervisionDangerStateEnum.整改任务分配.getCode().equals(currentDangerState)) {
taskUserId = param.getReformUserId();
......@@ -1664,10 +1672,19 @@ public class LatentDangerServiceImpl extends BaseService<LatentDangerBo, LatentD
if (StringUtil.isNotEmpty(idsStr)) {
// 查询指定隐患
dangerIdList = Lists.newArrayList(idsStr.split(","));
} else {
} else if ("0".equals(pageParam.get("my"))) {
// 不指定隐患id-我的任务
JSONObject allTaskResult = workflowFeignService.getCurrentUserAllTaskList(workflowProcessDefinitionKey);
allTaskList = (List) allTaskResult.get("data");
List<String> instanceIdList = Lists.newArrayList();
List<LatentDanger> dangers;
if (!ValidationUtil.isEmpty(allTaskList)) {
allTaskList.forEach(m -> instanceIdList.add(((Map)m).get("processInstanceId").toString()));
dangers =
this.baseMapper.selectList(new LambdaQueryWrapper<LatentDanger>().in(LatentDanger::getInstanceId, instanceIdList));
List<String> finalDangerIdList = dangerIdList;
dangers.forEach(d -> finalDangerIdList.add(d.getId().toString()));
}
// 没设置隐患状态,说明查询 我的任务 或 所有是 提交隐患 状态的任务
if (ValidationUtil.isEmpty(pageParam.get("dangerState"))) {
......@@ -1690,19 +1707,19 @@ public class LatentDangerServiceImpl extends BaseService<LatentDangerBo, LatentD
}
}
if (ValidationUtil.isEmpty(pageParam.get(DESC))) {
order = DESC;
if (!ValidationUtil.isEmpty(pageParam.get("order"))) {
order = pageParam.get("order").toString();
}
LambdaQueryWrapper<LatentDanger> queryWrapper = new LambdaQueryWrapper();
queryWrapper.like(!ValidationUtil.isEmpty(pageParam.get("name")),
LatentDanger::getDangerName, pageParam.get("name"))
.eq(!ValidationUtil.isEmpty(pageParam.get("dangerLevel")), LatentDanger::getDangerLevel,
pageParam.get("dangerLevel")).
eq(!ValidationUtil.isEmpty(pageParam.get("dangerState")), LatentDanger::getDangerState,
pageParam.get("dangerLevel"))
.eq(!ValidationUtil.isEmpty(pageParam.get("dangerState")), LatentDanger::getDangerState,
pageParam.get("dangerState"))
.eq(LatentDanger::getDeleted, false)
.in(!ValidationUtil.isEmpty(pageParam.get("dangerIds")), LatentDanger::getId, dangerIdList)
.in(!ValidationUtil.isEmpty(dangerIdList), LatentDanger::getId, dangerIdList)
.in(!ValidationUtil.isEmpty(structureIdList), LatentDanger::getStructureId, structureIdList)
.orderByDesc(DESC == order, LatentDanger::getUpdateDate);
return latentDangerMapper.selectPage(page, queryWrapper);
......@@ -1835,7 +1852,9 @@ public class LatentDangerServiceImpl extends BaseService<LatentDangerBo, LatentD
if (!ValidationUtil.isEmpty(searchParam.getDangerIds())) {
lambdaQueryWrapper.in(LatentDanger::getId, Lists.newArrayList(searchParam.getDangerIds().split(",")));
}
return this.baseMapper.selectList(lambdaQueryWrapper);
List<LatentDanger> latentDangers = this.baseMapper.selectList(lambdaQueryWrapper);
return latentDangers;
}
@Override
......@@ -1900,4 +1919,15 @@ public class LatentDangerServiceImpl extends BaseService<LatentDangerBo, LatentD
}
return true;
}
@Override
public IPage<LatentDanger> reviewListDanger(PageParam pageParam) throws Exception {
String type = pageParam.get("type").toString();
if ("audit".equals(type)) {
pageParam.put("dangerState", LatentDangerState.SupervisionDangerStateEnum.现场确认.getCode());
} else if ("review".equals(type)) {
pageParam.put("dangerState", LatentDangerState.SupervisionDangerStateEnum.提交整改资料.getCode());
}
return listDanger(pageParam);
}
}
......@@ -138,4 +138,12 @@ public interface ILatentDangerService {
*/
Object dangerAudit(LatentDangerDto latentDangerDto, Integer executeType, String userId, String userName,
String deptId, String deptName, ReginParams reginParams) throws Exception;
/**
* 隐患审核分页查询
*
* @param pageParam
* @return
*/
IPage<LatentDanger> reviewListDanger(PageParam pageParam) throws Exception;
}
......@@ -80,4 +80,6 @@ public class LatentDangerDetailVo {
private String inferOtherThings;
private String taskId;
private JSONObject bizInfo;
}
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