feat: 企标制修订-主流程审批及回显

This commit is contained in:
2023-12-20 18:04:13 +08:00
parent df77680293
commit bd869545de
13 changed files with 551 additions and 44 deletions
@@ -0,0 +1,156 @@
package com.jero.modules.activiti.process.esRevision.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
*
* @TableName process_es_revision_advice
*/
@TableName(value ="process_es_revision_advice")
@Data
public class EsRevisionAdvice implements Serializable {
/**
* 主键ID
*/
@TableId
private String id;
/**
* 创建人
*/
private String createBy;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新人
*/
private String updateBy;
/**
* 更新时间
*/
private Date updateTime;
/**
* 所属部门
*/
private String orgCode;
/**
* 流程实例Id
*/
private String processInstanceId;
/**
* 执行id
*/
private String executionId;
/**
* 条款号
*/
private String clauseNum;
/**
* 条款名称
*/
private String clauseName;
/**
* 修改意见内容(包括修改理由和依据)
*/
private String editAdvice;
/**
* 意见提出人
*/
private String createUserId;
/**
* 1采纳 2部分采纳 3不采纳
*/
private String handleAdvice;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
@Override
public boolean equals(Object that) {
if (this == that) {
return true;
}
if (that == null) {
return false;
}
if (getClass() != that.getClass()) {
return false;
}
EsRevisionAdvice other = (EsRevisionAdvice) that;
return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
&& (this.getCreateBy() == null ? other.getCreateBy() == null : this.getCreateBy().equals(other.getCreateBy()))
&& (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
&& (this.getUpdateBy() == null ? other.getUpdateBy() == null : this.getUpdateBy().equals(other.getUpdateBy()))
&& (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
&& (this.getOrgCode() == null ? other.getOrgCode() == null : this.getOrgCode().equals(other.getOrgCode()))
&& (this.getProcessInstanceId() == null ? other.getProcessInstanceId() == null : this.getProcessInstanceId().equals(other.getProcessInstanceId()))
&& (this.getExecutionId() == null ? other.getExecutionId() == null : this.getExecutionId().equals(other.getExecutionId()))
&& (this.getClauseNum() == null ? other.getClauseNum() == null : this.getClauseNum().equals(other.getClauseNum()))
&& (this.getClauseName() == null ? other.getClauseName() == null : this.getClauseName().equals(other.getClauseName()))
&& (this.getEditAdvice() == null ? other.getEditAdvice() == null : this.getEditAdvice().equals(other.getEditAdvice()))
&& (this.getCreateUserId() == null ? other.getCreateUserId() == null : this.getCreateUserId().equals(other.getCreateUserId()))
&& (this.getHandleAdvice() == null ? other.getHandleAdvice() == null : this.getHandleAdvice().equals(other.getHandleAdvice()));
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
result = prime * result + ((getCreateBy() == null) ? 0 : getCreateBy().hashCode());
result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
result = prime * result + ((getUpdateBy() == null) ? 0 : getUpdateBy().hashCode());
result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
result = prime * result + ((getOrgCode() == null) ? 0 : getOrgCode().hashCode());
result = prime * result + ((getProcessInstanceId() == null) ? 0 : getProcessInstanceId().hashCode());
result = prime * result + ((getExecutionId() == null) ? 0 : getExecutionId().hashCode());
result = prime * result + ((getClauseNum() == null) ? 0 : getClauseNum().hashCode());
result = prime * result + ((getClauseName() == null) ? 0 : getClauseName().hashCode());
result = prime * result + ((getEditAdvice() == null) ? 0 : getEditAdvice().hashCode());
result = prime * result + ((getCreateUserId() == null) ? 0 : getCreateUserId().hashCode());
result = prime * result + ((getHandleAdvice() == null) ? 0 : getHandleAdvice().hashCode());
return result;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", createBy=").append(createBy);
sb.append(", createTime=").append(createTime);
sb.append(", updateBy=").append(updateBy);
sb.append(", updateTime=").append(updateTime);
sb.append(", orgCode=").append(orgCode);
sb.append(", processInstanceId=").append(processInstanceId);
sb.append(", executionId=").append(executionId);
sb.append(", clauseNum=").append(clauseNum);
sb.append(", clauseName=").append(clauseName);
sb.append(", editAdvice=").append(editAdvice);
sb.append(", createUserId=").append(createUserId);
sb.append(", handleAdvice=").append(handleAdvice);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");
return sb.toString();
}
}
@@ -1,5 +1,6 @@
package com.jero.modules.activiti.process.esRevision.entity;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
@@ -7,9 +8,10 @@ import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardInspectContent;
import com.jero.modules.activiti.process.esRevision.entity.vo.InspectContentVO;
import com.jero.modules.activiti.process.esRevision.entity.vo.OtherDraftUserVO;
import com.jero.modules.activiti.process.esRevision.entity.vo.ReviewMeetingDetailVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -75,6 +77,24 @@ public class ProcessEsRevision implements Serializable {
@ApiModelProperty(value = "业务JSON数据")
private String businessJson;
/**
* 其他起草人上传文件JSON
*/
@ApiModelProperty(value = "其他起草人上传文件JSON")
private String otherDrafterUploadFileJson;
/**
* 稽查内容JSON
*/
@ApiModelProperty(value = "稽查内容JSON")
private String inspectContentJson;
/**
* 评审会评分细节JSON
*/
@ApiModelProperty(value = "评审会评分细节JSON")
private String reviewMeetingDetailJson;
/**
* 执行id
*/
@@ -188,11 +208,55 @@ public class ProcessEsRevision implements Serializable {
@TableField(exist = false)
@ApiModelProperty(value = "其他起草人")
private List<OtherDraftUser> otherDraftUsers;
private List<OtherDraftUserVO> otherDraftUserVOS;
@TableField(exist = false)
@ApiModelProperty(value = "稽查内容")
private List<EnterpriseStandardInspectContent> inspectContents;
private List<InspectContentVO> inspectContents;
@TableField(exist = false)
@ApiModelProperty(value = "评审结果")
private List<ReviewMeetingDetailVO> reviewMeetingDetails;
@TableField(exist = false)
@ApiModelProperty(value = "意见列表")
private List<EsRevisionAdvice> advices;
public void setOtherDrafterUploadFileJson(String otherDrafterUploadFileJson) {
this.otherDrafterUploadFileJson = otherDrafterUploadFileJson;
}
public void setInspectContentJson(String inspectContentJson) {
this.inspectContentJson = inspectContentJson;
}
public void setReviewMeetingDetailJson(String reviewMeetingDetailJson) {
this.reviewMeetingDetailJson = reviewMeetingDetailJson;
}
public void setOtherDrafterUploadFileJson(List<OtherDraftUserVO> otherDraftUserVOS) {
this.otherDrafterUploadFileJson = JSON.toJSONString(otherDraftUserVOS);
}
public void setInspectContentJson(List<InspectContentVO> inspectContents) {
this.inspectContentJson = JSON.toJSONString(inspectContents);
}
public void setReviewMeetingDetailJson(List<ReviewMeetingDetailVO> reviewMeetingDetails) {
this.reviewMeetingDetailJson = JSON.toJSONString(reviewMeetingDetails);
}
public List<OtherDraftUserVO> parseOtherDraftUserVOS() {
return JSON.parseArray(this.otherDrafterUploadFileJson, OtherDraftUserVO.class);
}
public List<InspectContentVO> parseInspectContents() {
return JSON.parseArray(this.inspectContentJson, InspectContentVO.class);
}
public List<ReviewMeetingDetailVO> parseReviewMeetingDetails() {
return JSON.parseArray(this.reviewMeetingDetailJson, ReviewMeetingDetailVO.class);
}
@TableField(exist = false)
private static final long serialVersionUID = 1L;
@@ -0,0 +1,46 @@
package com.jero.modules.activiti.process.esRevision.entity;
/**
* @author: Mzaxd
* @Date: 2023/12/19 15:14
*/
public class RevisionTaskNodeIdConstant {
/** 主起草人分发 */
public static final String MAIN_DRAFT_USER_DISTRIBUTE = "Activity_0v98tow";
/** 其他起草人上传企标 */
public static final String OTHER_DRAFT_USER_UPLOAD = "Activity_1dz3u0m";
/** 主起草人汇总 */
public static final String MAIN_DRAFT_USER_COLLECT_FIRST = "Activity_1d2la4l";
/** 标准化审批 */
public static final String STANDARDIZATION_CHECK = "Activity_0m576ex";
/** 评分人评分 */
public static final String RATER_RATE = "Activity_1qhpnpa";
/** 标准化确认是否开启征求意见 */
public static final String CONFIRM_ADVISE = "Activity_1siuksf";
/** 部门联络人下发 */
public static final String CONTACT_USER_DISTRIBUTE = "Activity_1ns6olf";
/** 征求意见对象填写意见 */
public static final String ADVICE = "Activity_04m430n";
/** 部门联络人汇总数据 */
public static final String CONTACT_USER_COLLECT = "Activity_1riqzkp";
/** 部所联络人主管级领导审批 */
public static final String CONTACT_USER_LEADER_APPROVAL = "Activity_1ralk8e";
/** 主起草人汇总 */
public static final String MAIN_DRAFT_USER_COLLECT_SECOND = "Activity_1hb9aun";
/** 主起草人上传会议纪要 */
public static final String MAIN_DRAFT_USER_UPLOAD = "Activity_11uuyg0";
/** 其它起草人校对 */
public static final String OTHER_DRAFT_USER_CHECK = "Activity_1seways";
/** 主管级领导审批 */
public static final String LEADER_APPROVAL = "Activity_1l028rz";
/** 标准化审批 */
public static final String STANDARDIZATION_APPROVAL = "Activity_0uxua0b";
/** 相关部门领导会签 */
public static final String RELATED_LEADER_APPROVAL = "Activity_05pybsc";
/** 总工程师审批 */
public static final String CHIEF_ENGINEER_APPROVAL = "Activity_1yr56ac";
/** 主起草人发布 */
public static final String MAIN_DRAFT_USER_RELEASE = "Activity_0n0h60s";
}
@@ -0,0 +1,27 @@
package com.jero.modules.activiti.process.esRevision.entity.vo;
import com.alibaba.fastjson.annotation.JSONField;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModelProperty;
/**
* @author: Mzaxd
* @Date: 2023/12/20 17:46
*/
public class InspectContentVO {
/** 条款 */
@JSONField(name = "clause")
@ApiModelProperty(value = "条款")
private String clause;
/** 标准内容或要求 */
@JSONField(name = "requirement")
@ApiModelProperty(value = "标准内容或要求")
private String requirement;
@JSONField(name = "rectificationDepartment")
@ApiModelProperty(value = "整改部门")
@Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name")
private String rectificationDepartment;
}
@@ -1,4 +1,4 @@
package com.jero.modules.activiti.process.esRevision.entity;
package com.jero.modules.activiti.process.esRevision.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -11,7 +11,7 @@ import java.util.Date;
*/
@Data
public class OtherDraftUser {
public class OtherDraftUserVO {
@ApiModelProperty(value = "起草人责任单位")
private String dept;
@@ -0,0 +1,30 @@
package com.jero.modules.activiti.process.esRevision.entity.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author: Mzaxd
* @Date: 2023/12/20 16:13
*/
@Data
public class ReviewMeetingDetailVO {
/**评分项目*/
@ApiModelProperty(value = "评分项目")
private String evaluateItem;
/**评分分值*/
@ApiModelProperty(value = "评分分值")
private String evaluateScore;
/**评分人id*/
@ApiModelProperty(value = "评分人id")
private String adjudicatorId;
/**扣分理由*/
@ApiModelProperty(value = "扣分理由")
private String deductionScoreReason;
}
@@ -1,26 +0,0 @@
package com.jero.modules.activiti.process.esRevision.listener;
/**
* @author: Mzaxd
* @Date: 2023/12/19 15:14
*/
public class RevisionTaskNameConstant {
public static final String MAIN_DRAFT_USER_DISTRIBUTE = "主起草人起草分发";
public static final String OTHER_DRAFT_USER_UPLOAD = "其他起草人上传企标";
public static final String STANDARDIZATION_CHECK = "标准化审核";
public static final String RATER_RATE = "评分人打分";
public static final String CONFIRM_ADVISE = "标准化确认是否开启征求意见";
public static final String CONTACT_USER_DISTRIBUTE = "部所联络人下发";
public static final String ADVICE = "征求意见对象填写意见";
public static final String CONTACT_USER_COLLECT = "部所联络人汇总数据";
public static final String CONTACT_USER_LEADER_APPROVAL = "部所联络人主管级领导审批";
public static final String MAIN_DRAFT_USER_COLLECT = "主起草人汇总";
public static final String MAIN_DRAFT_USER_UPLOAD = "主起草人上传会议纪要";
public static final String LEADER_APPROVAL = "主管级领导审批";
public static final String STANDARDIZATION_APPROVAL = "标准化审批";
public static final String RELATED_LEADER_APPROVAL = "相关部门领导会签";
public static final String CHIEF_ENGINEER_APPROVAL = "总工程师审批";
public static final String MAIN_DRAFT_USER_RELEASE = "主起草人发布";
}
@@ -0,0 +1,18 @@
package com.jero.modules.activiti.process.esRevision.mapper;
import com.jero.modules.activiti.process.esRevision.entity.EsRevisionAdvice;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author ThinkBook
* @description 针对表【process_es_revision_advice】的数据库操作Mapper
* @createDate 2023-12-20 17:17:56
* @Entity com.jero.modules.activiti.process.esRevision.entity.EsRevisionAdvice
*/
public interface EsRevisionAdviceMapper extends BaseMapper<EsRevisionAdvice> {
}
@@ -0,0 +1,13 @@
package com.jero.modules.activiti.process.esRevision.service;
import com.jero.modules.activiti.process.esRevision.entity.EsRevisionAdvice;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author ThinkBook
* @description 针对表【process_es_revision_advice】的数据库操作Service
* @createDate 2023-12-20 17:17:56
*/
public interface EsRevisionAdviceService extends IService<EsRevisionAdvice> {
}
@@ -16,7 +16,7 @@ public interface EsRevisionService extends IService<ProcessEsRevision> {
ESRevisionDataVO getHandleData(String taskId);
void autoStartProcess(ESRecheckDataVO recheckData);
void autoStartProcess(ESRevisionDataVO revisionData);
void saveToDraft(ProcessInfoVO<ESRevisionDataVO> processInfoVO);
@@ -0,0 +1,22 @@
package com.jero.modules.activiti.process.esRevision.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.modules.activiti.process.esRevision.entity.EsRevisionAdvice;
import com.jero.modules.activiti.process.esRevision.service.EsRevisionAdviceService;
import com.jero.modules.activiti.process.esRevision.mapper.EsRevisionAdviceMapper;
import org.springframework.stereotype.Service;
/**
* @author ThinkBook
* @description 针对表【process_es_revision_advice】的数据库操作Service实现
* @createDate 2023-12-20 17:17:56
*/
@Service
public class EsRevisionAdviceServiceImpl extends ServiceImpl<EsRevisionAdviceMapper, EsRevisionAdvice>
implements EsRevisionAdviceService{
}
@@ -1,26 +1,35 @@
package com.jero.modules.activiti.process.esRevision.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.modules.activiti.entity.ProcessAll;
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.enums.ProcessTypeEnum;
import com.jero.modules.activiti.process.common.entity.CommonVO;
import com.jero.modules.activiti.process.common.enums.ProcessType;
import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
import com.jero.modules.activiti.process.esRecheck.entity.vo.ESRecheckDataVO;
import com.jero.modules.activiti.process.esRevision.entity.OtherDraftUser;
import com.jero.modules.activiti.process.esRevision.entity.vo.InspectContentVO;
import com.jero.modules.activiti.process.esRevision.entity.vo.OtherDraftUserVO;
import com.jero.modules.activiti.process.esRevision.entity.ProcessEsRevision;
import com.jero.modules.activiti.process.esRevision.entity.vo.ESRevisionDataVO;
import com.jero.modules.activiti.process.esRevision.entity.vo.ReviewMeetingDetailVO;
import com.jero.modules.activiti.process.esRevision.service.EsRevisionService;
import com.jero.modules.activiti.process.esRevision.mapper.EsRevisionMapper;
import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO;
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.activiti.service.ProcessNodeLinkService;
import com.jero.modules.laws.common.constant.FieldCommon;
import com.jero.modules.sys.utils.UserUtils;
import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -28,6 +37,8 @@ import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
import static com.jero.modules.activiti.process.esRevision.entity.RevisionTaskNodeIdConstant.*;
/**
* @author ThinkBook
* @description 针对表【process_es_revision】的数据库操作Service实现
@@ -51,6 +62,12 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
@Resource
private IProcessHandleService processHandleService;
@Resource
private ProcessAllService processAllService;
@Resource
private TaskService taskService;
@Override
public void startProcess(ESRevisionDataVO revisionData) {
@@ -95,12 +112,12 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
Map<String, Object> flowUser = revisionData.getFlowUser();
ProcessEsRevision data = revisionData.getData();
actVariables.put("mainDraftUser", flowUser.get("mainDraftUser"));
List<OtherDraftUser> otherDraftUsers = data.getOtherDraftUsers();
if (otherDraftUsers == null || otherDraftUsers.isEmpty()) {
List<OtherDraftUserVO> otherDraftUserVOS = data.getOtherDraftUserVOS();
if (otherDraftUserVOS == null || otherDraftUserVOS.isEmpty()) {
actVariables.put("distribute", false);
} else {
actVariables.put("distribute", true);
actVariables.put("otherDraftUserList", otherDraftUsers.stream().map(OtherDraftUser::getUser)
actVariables.put("otherDraftUserList", otherDraftUserVOS.stream().map(OtherDraftUserVO::getUser)
.collect(Collectors.toList()));
}
// 获取分发人
@@ -109,9 +126,10 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
private Map<String, Object> getUserMap(Map<String, Object> variables) {
// 转成逗号拼接
variables.put("mainDraftUser", Optional.ofNullable((HashSet<String>) variables.get("contactUserList"))
variables.put("otherDraftUserList", Optional.ofNullable((ArrayList<String>) variables.get("otherDraftUserList"))
.map(list -> String.join(",", list))
.orElse(""));
variables.remove("distribute");
return variables;
}
@@ -120,18 +138,156 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
}
@Override
public void autoStartProcess(ESRecheckDataVO recheckData) {
public void autoStartProcess(ESRevisionDataVO revisionData) {
}
@Override
public ESRevisionDataVO getHandleData(String taskId) {
return null;
String userId = actFlowCommonService.getOriginTaskAssignee(taskId);
if (!actFlowCommonService.taskExists(taskId)) {
throw new JeroBootException("任务不存在");
}
String executionId = taskService.createTaskQuery().taskId(taskId).singleResult().getExecutionId();
// 根据当前执行Id获取所有子执行Id
List<String> executionIdList = actFlowCommonService.getAllChildExecutionIds(executionId);
executionIdList.add(executionId);
ESRevisionDataVO revisionDataVO = new ESRevisionDataVO();
// 使用流程引擎根据taskId找到流程实例Id
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
// 获取流程通用数据
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
CommonVO commonVO = new CommonVO();
commonVO.setPrcName(process.getPrcName());
commonVO.setTaskId(process.getTaskId());
commonVO.setPrcMes(process.getPrcMes());
commonVO.setDueTime(process.getDueTime());
commonVO.setNodeId(process.getNodeId());
revisionDataVO.setCommon(commonVO);
// 获取流程实例数据
LambdaQueryWrapper<ProcessEsRevision> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessEsRevision::getProcessInstanceId, processInstanceId);
revisionDataVO.setData(getOne(wrapper));
return revisionDataVO;
}
@Override
public void approval(ESRevisionDataVO revisionData, boolean pass) {
CommonVO commonVO = revisionData.getCommon();
String taskId = commonVO.getTaskId();
// 获取task
if (StrUtil.isBlank(taskId) && !actFlowCommonService.taskExists(taskId)) {
throw new JeroBootException("taskId为空或任务不存在");
}
String userId = actFlowCommonService.getOriginTaskAssignee(taskId);
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
// 获取执行id
String executionId = task.getExecutionId();
// 获取当前节点的id
ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId);
String xmlNodeId = record.getNodeId();
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
LambdaQueryWrapper<ProcessEsRevision> wrapper = new LambdaQueryWrapper<>();
LambdaUpdateWrapper<ProcessEsRevision> updateWrapper = new LambdaUpdateWrapper<>();
wrapper.eq(ProcessEsRevision::getProcessInstanceId, processInstanceId);
wrapper.eq(ProcessEsRevision::getDelFlag, YesOrNoEnum.NO.getValue());
updateWrapper.eq(ProcessEsRevision::getProcessInstanceId, processInstanceId);
updateWrapper.eq(ProcessEsRevision::getDelFlag, YesOrNoEnum.NO.getValue());
// 获取当前流程
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
String processDefinitionId = processInstance.getProcessDefinitionId();
Map<String, Object> userMap = new HashMap<>();
ProcessEsRevision data;
switch (xmlNodeId) {
case MAIN_DRAFT_USER_DISTRIBUTE:
// TODO 判断是否分发 设置流程变量 别忘了时间边界变量
break;
case OTHER_DRAFT_USER_UPLOAD:
// TODO
break;
case MAIN_DRAFT_USER_COLLECT_FIRST:
// 判断是否需要稽查 设置流程变量 保存稽查列表
data = revisionData.getData();
boolean inspectFlag = !data.getInspectFlag().equals("0");
if (inspectFlag) {
List<InspectContentVO> inspectContents = data.getInspectContents();
data.setInspectContentJson(inspectContents);
}
// 保存流程数据
saveOrUpdate(data);
break;
case STANDARDIZATION_CHECK:
// 判断是否可以评审
data = revisionData.getData();
boolean reviewMeetingFlag = !data.getReviewMeetingFlag().equals("0");
if (reviewMeetingFlag) {
List<String> raterList = Arrays.asList(data.getRaters().split(","));
taskService.setVariable(taskId, "raterList", raterList);
// 保存流程数据
saveOrUpdate(data);
}
break;
case RATER_RATE:
// 保存打分记录
data = revisionData.getData();
List<ReviewMeetingDetailVO> reviewMeetingDetails = data.getReviewMeetingDetails();
ProcessEsRevision revisionDb = getById(data.getId());
List<ReviewMeetingDetailVO> reviewMeetingDetailsDb = revisionDb.parseReviewMeetingDetails();
reviewMeetingDetailsDb.addAll(reviewMeetingDetails);
data.setReviewMeetingDetailJson(reviewMeetingDetailsDb);
saveOrUpdate(data);
break;
case CONFIRM_ADVISE:
// 判断是否开启征求意见子流程 设置流程变量
data = revisionData.getData();
boolean adviceFlag = !data.getAdviceFlag().equals("0");
if (adviceFlag) {
List<String> contactUserList = Arrays.asList(data.getContactUser().split(","));
taskService.setVariable(taskId, "contactUserList", contactUserList);
// 保存流程数据
saveOrUpdate(data);
}
break;
case CONTACT_USER_DISTRIBUTE:
break;
case ADVICE:
break;
case CONTACT_USER_COLLECT:
break;
case CONTACT_USER_LEADER_APPROVAL:
break;
case MAIN_DRAFT_USER_COLLECT_SECOND:
break;
case MAIN_DRAFT_USER_UPLOAD:
// 设置后续节点的办理人
data = revisionData.getData();
List<String> proofreaderList = Arrays.asList(data.getProofreader().split(","));
List<String> approvalUserList = Arrays.asList(data.getApprovalUser().split(","));
String approvalUserStandard = data.getApprovalUserStandard();
List<String> relatedLeaderList = Arrays.asList(data.getRelatedLeader().split(","));
String chiefEngineer = data.getChiefEngineer();
userMap.put("proofreaderList", proofreaderList);
userMap.put("approvalUserList", approvalUserList);
userMap.put("approvalUserStandard", approvalUserStandard);
userMap.put("relatedLeaderList", relatedLeaderList);
userMap.put("chiefEngineer", chiefEngineer);
taskService.setVariables(taskId, userMap);
saveOrUpdate(data);
break;
case MAIN_DRAFT_USER_RELEASE:
// do nothing now
break;
}
if (pass) {
runtimeService.setVariable(processInstanceId, "pass", true);
} else {
// 设置流程变量
runtimeService.setVariable(processInstanceId, "pass", false);
}
// 更新审批表为完成,填充数据
actFlowCommonService.updateApprovalInfo(commonVO, taskId, pass);
// 审批节点
actFlowCommonService.completeTask(taskId, userId);
}
@Override
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -78,7 +79,7 @@ public class EnterpriseStandardRmrEvaluateDetail implements Serializable {
/**评分人名称*/
@TableField(exist = false)
@ApiModelProperty(value = "评分人名称")
private String adjudicatorName;;
private String adjudicatorName;
/**扣分理由*/
@ApiModelProperty(value = "扣分理由")