update 项目合规评估流程 提交审批操作
This commit is contained in:
+2
@@ -8,6 +8,8 @@ public class ProcessProjectAssessCommon {
|
|||||||
public static final String STANDARDS_ENGINEER = "standardsEngineer";
|
public static final String STANDARDS_ENGINEER = "standardsEngineer";
|
||||||
public static final String MANAGER_LEADER_LIST = "managerLeaderList";
|
public static final String MANAGER_LEADER_LIST = "managerLeaderList";
|
||||||
public static final String MODULE_OWNER_LIST = "moduleOwnerList";
|
public static final String MODULE_OWNER_LIST = "moduleOwnerList";
|
||||||
|
public static final String DESIGN_ENGINEER_LIST = "designEngineerList";
|
||||||
|
public static final String PASS = "pass";
|
||||||
//法规工程师发起
|
//法规工程师发起
|
||||||
public static final String FGGCSFQ = "fggcsfq";
|
public static final String FGGCSFQ = "fggcsfq";
|
||||||
//各部门主管级领导下发
|
//各部门主管级领导下发
|
||||||
|
|||||||
+46
-2
@@ -100,6 +100,13 @@ public class ProcessProjectAssessTerm {
|
|||||||
@ApiModelProperty(value = "可以分派标识")
|
@ApiModelProperty(value = "可以分派标识")
|
||||||
private Integer canAssignFlag;
|
private Integer canAssignFlag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 条款关联用户表ID
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "条款关联用户表ID")
|
||||||
|
private String termUserId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 责任单位id
|
* 责任单位id
|
||||||
*/
|
*/
|
||||||
@@ -111,15 +118,22 @@ public class ProcessProjectAssessTerm {
|
|||||||
* 责任单位负责人id
|
* 责任单位负责人id
|
||||||
*/
|
*/
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
@ApiModelProperty(value = "责任单位负责人id")
|
@ApiModelProperty(value = "责任单位负责人ids")
|
||||||
private String responsibleUnitLeaders;
|
private String responsibleUnitLeaders;
|
||||||
/**
|
/**
|
||||||
* 模块负责人id
|
* 模块负责人id
|
||||||
*/
|
*/
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
@ApiModelProperty(value = "模块负责人id")
|
@ApiModelProperty(value = "模块负责人ids")
|
||||||
private String moduleOwners;
|
private String moduleOwners;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设计工程师
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "设计工程师ids")
|
||||||
|
private String designEngineers;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 不涉及原因
|
* 不涉及原因
|
||||||
*/
|
*/
|
||||||
@@ -137,5 +151,35 @@ public class ProcessProjectAssessTerm {
|
|||||||
@ApiModelProperty(value = "条款关联用户")
|
@ApiModelProperty(value = "条款关联用户")
|
||||||
private List<ProcessProjectAssessTermUser> processProjectAssessTermUserList;
|
private List<ProcessProjectAssessTermUser> processProjectAssessTermUserList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 评估反馈
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "评估反馈")
|
||||||
|
private Integer evaluationFeedback;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 依据描述
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "依据描述")
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 佐证材料
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "佐证材料")
|
||||||
|
private String fileId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预计整改完成日期
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "预计整改完成日期")
|
||||||
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||||
|
private Date expectedTime;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
+5
@@ -17,6 +17,7 @@
|
|||||||
<result column="term_text" jdbcType="VARCHAR" property="termText" />
|
<result column="term_text" jdbcType="VARCHAR" property="termText" />
|
||||||
<result column="split_info_id" property="splitInfoId"/>
|
<result column="split_info_id" property="splitInfoId"/>
|
||||||
<result column="can_assign_flag" property="canAssignFlag"/>
|
<result column="can_assign_flag" property="canAssignFlag"/>
|
||||||
|
<result column="term_user_id" property="termUserId"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="Base_Column_List">
|
<sql id="Base_Column_List">
|
||||||
@@ -42,6 +43,8 @@
|
|||||||
<include refid="Base_Column_List">
|
<include refid="Base_Column_List">
|
||||||
<property name="alias" value="ppat"/>
|
<property name="alias" value="ppat"/>
|
||||||
</include>
|
</include>
|
||||||
|
,
|
||||||
|
ppatu.id termUserId
|
||||||
from process_project_assess_term ppat
|
from process_project_assess_term ppat
|
||||||
left join process_project_assess_term_user ppatu on ppat.id = ppatu.term_id
|
left join process_project_assess_term_user ppatu on ppat.id = ppatu.term_id
|
||||||
where ppat.assessment_id = #{assessmentId}
|
where ppat.assessment_id = #{assessmentId}
|
||||||
@@ -55,6 +58,8 @@
|
|||||||
<include refid="Base_Column_List">
|
<include refid="Base_Column_List">
|
||||||
<property name="alias" value="ppat"/>
|
<property name="alias" value="ppat"/>
|
||||||
</include>
|
</include>
|
||||||
|
,
|
||||||
|
ppatu.id termUserId
|
||||||
from process_project_assess_term ppat
|
from process_project_assess_term ppat
|
||||||
left join process_project_assess_term_user ppatu on ppat.id = ppatu.term_id
|
left join process_project_assess_term_user ppatu on ppat.id = ppatu.term_id
|
||||||
where ppat.assessment_id = #{assessmentId}
|
where ppat.assessment_id = #{assessmentId}
|
||||||
|
|||||||
+225
-84
@@ -1,4 +1,6 @@
|
|||||||
package com.jero.modules.activiti.process.projectassess.service;
|
package com.jero.modules.activiti.process.projectassess.service;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollStreamUtil;
|
import cn.hutool.core.collection.CollStreamUtil;
|
||||||
@@ -34,6 +36,7 @@ import org.activiti.engine.runtime.Execution;
|
|||||||
import org.activiti.engine.task.Task;
|
import org.activiti.engine.task.Task;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -44,10 +47,9 @@ import com.jero.modules.activiti.process.projectassess.mapper.ProcessProjectAsse
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* @author liJiaRao
|
||||||
*@author liJiaRao
|
* @date 2023-12-05 15:57
|
||||||
*@date 2023-12-05 15:57
|
*/
|
||||||
*/
|
|
||||||
@Service
|
@Service
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAssessMapper, ProcessProjectAssess> {
|
public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAssessMapper, ProcessProjectAssess> {
|
||||||
@@ -84,10 +86,10 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
|||||||
}
|
}
|
||||||
|
|
||||||
public ProcessInfoVO<ProcessProjectAssessVO> queryProcessInfoVO(String draftId, String processInstanceId, String taskId) {
|
public ProcessInfoVO<ProcessProjectAssessVO> queryProcessInfoVO(String draftId, String processInstanceId, String taskId) {
|
||||||
if (StringUtils.isNotBlank(draftId) && StringUtils.isBlank(taskId)){
|
if (StringUtils.isNotBlank(draftId) && StringUtils.isBlank(taskId)) {
|
||||||
ProcessInfoVO draft = processHandleService.getDraft(draftId);
|
ProcessInfoVO draft = processHandleService.getDraft(draftId);
|
||||||
return draft;
|
return draft;
|
||||||
}
|
}
|
||||||
ProcessInfoVO processInfoVO = processHandleService.queryProcessInfoVO(draftId, processInstanceId, taskId);
|
ProcessInfoVO processInfoVO = processHandleService.queryProcessInfoVO(draftId, processInstanceId, taskId);
|
||||||
String assessmentId = processInfoVO.getBusinessId();
|
String assessmentId = processInfoVO.getBusinessId();
|
||||||
ProcessDTO processDTO = processHandleService.getProcessDTO(taskId);
|
ProcessDTO processDTO = processHandleService.getProcessDTO(taskId);
|
||||||
@@ -95,31 +97,29 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
|||||||
String originUserId = processApprovalRecord.getOriginUserId();
|
String originUserId = processApprovalRecord.getOriginUserId();
|
||||||
Task task = processDTO.getTask();
|
Task task = processDTO.getTask();
|
||||||
|
|
||||||
|
String executionParentId = task.getFormKey();
|
||||||
String taskDefinitionKey = task.getTaskDefinitionKey();
|
String taskDefinitionKey = task.getTaskDefinitionKey();
|
||||||
Execution execution = processDTO.getExecution();
|
|
||||||
String executionParentId = (String) runtimeService.getVariable(execution.getId(),"flowIndex");
|
|
||||||
//String executionParentId = execution.getParentId();
|
|
||||||
List<ProcessProjectAssessTermUser> processProjectAssessTermUserList = new ArrayList<>();
|
List<ProcessProjectAssessTermUser> processProjectAssessTermUserList = new ArrayList<>();
|
||||||
List<ProcessProjectAssessTerm> processProjectAssessTermList = new ArrayList<>();
|
List<ProcessProjectAssessTerm> processProjectAssessTermList = new ArrayList<>();
|
||||||
//获取所有用户信息
|
//获取所有用户信息
|
||||||
List<LoginUser> userList = sysBaseAPI.getAllUser();
|
List<LoginUser> userList = sysBaseAPI.getAllUser();
|
||||||
Map<String,String> userNameMap = new HashMap<>();
|
Map<String, String> userNameMap = new HashMap<>();
|
||||||
for (LoginUser loginUser : userList) {
|
for (LoginUser loginUser : userList) {
|
||||||
userNameMap.put(loginUser.getId(),loginUser.calcNameWorkNo());
|
userNameMap.put(loginUser.getId(), loginUser.calcNameWorkNo());
|
||||||
}
|
}
|
||||||
//上一节点处理人
|
//上一节点处理人
|
||||||
Map<String,String> previousNodeHandlerMap = new HashMap<>();
|
Map<String, String> previousNodeHandlerMap = new HashMap<>();
|
||||||
LambdaQueryWrapper<ProcessProjectAssessTermUser> wrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<ProcessProjectAssessTermUser> wrapper = new LambdaQueryWrapper<>();
|
||||||
wrapper.eq(ProcessProjectAssessTermUser::getAssessmentId, assessmentId);
|
wrapper.eq(ProcessProjectAssessTermUser::getAssessmentId, assessmentId);
|
||||||
switch (taskDefinitionKey) {
|
switch (taskDefinitionKey) {
|
||||||
//各部门主管级领导下发
|
//各部门主管级领导下发
|
||||||
case ProcessProjectAssessCommon.GBMZGJLDXF:
|
case ProcessProjectAssessCommon.GBMZGJLDXF:
|
||||||
processProjectAssessTermList = processProjectAssessTermService.getByResponsibleUnitLeader(assessmentId,originUserId);
|
processProjectAssessTermList = processProjectAssessTermService.getByResponsibleUnitLeader(assessmentId, originUserId);
|
||||||
break;
|
break;
|
||||||
//各部门主管级领导(汇总)审批
|
//各部门主管级领导(汇总)审批
|
||||||
case ProcessProjectAssessCommon.GBMZGJLDSP:
|
case ProcessProjectAssessCommon.GBMZGJLDSP:
|
||||||
processProjectAssessTermList = processProjectAssessTermService.getByResponsibleUnitLeader(assessmentId,originUserId);
|
processProjectAssessTermList = processProjectAssessTermService.getByResponsibleUnitLeader(assessmentId, originUserId);
|
||||||
wrapper.eq(ProcessProjectAssessTermUser::getResponsibleUnitLeader,originUserId);
|
wrapper.eq(ProcessProjectAssessTermUser::getResponsibleUnitLeader, originUserId);
|
||||||
processProjectAssessTermUserList = processProjectAssessTermUserService.list(wrapper);
|
processProjectAssessTermUserList = processProjectAssessTermUserService.list(wrapper);
|
||||||
previousNodeHandlerMap = processProjectAssessTermUserList.stream()
|
previousNodeHandlerMap = processProjectAssessTermUserList.stream()
|
||||||
.collect(
|
.collect(
|
||||||
@@ -132,15 +132,15 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
|||||||
break;
|
break;
|
||||||
//模块负责人分发
|
//模块负责人分发
|
||||||
case ProcessProjectAssessCommon.MKFZRFF:
|
case ProcessProjectAssessCommon.MKFZRFF:
|
||||||
processProjectAssessTermList = processProjectAssessTermService.getByModuleOwner(assessmentId,originUserId,executionParentId);
|
processProjectAssessTermList = processProjectAssessTermService.getByModuleOwner(assessmentId, originUserId, executionParentId);
|
||||||
break;
|
break;
|
||||||
//模块负责人审批
|
//模块负责人审批
|
||||||
case ProcessProjectAssessCommon.MKFZRSP:
|
case ProcessProjectAssessCommon.MKFZRSP:
|
||||||
//模块负责人修改
|
//模块负责人修改
|
||||||
case ProcessProjectAssessCommon.MKFZRXG:
|
case ProcessProjectAssessCommon.MKFZRXG:
|
||||||
processProjectAssessTermList = processProjectAssessTermService.getByModuleOwner(assessmentId,originUserId,executionParentId);
|
processProjectAssessTermList = processProjectAssessTermService.getByModuleOwner(assessmentId, originUserId, executionParentId);
|
||||||
wrapper.eq(ProcessProjectAssessTermUser::getModuleOwner,originUserId);
|
wrapper.eq(ProcessProjectAssessTermUser::getModuleOwner, originUserId);
|
||||||
wrapper.eq(ProcessProjectAssessTermUser::getParentExecutionId,executionParentId);
|
wrapper.eq(ProcessProjectAssessTermUser::getParentExecutionId, executionParentId);
|
||||||
processProjectAssessTermUserList = processProjectAssessTermUserService.list(wrapper);
|
processProjectAssessTermUserList = processProjectAssessTermUserService.list(wrapper);
|
||||||
previousNodeHandlerMap = processProjectAssessTermUserList.stream()
|
previousNodeHandlerMap = processProjectAssessTermUserList.stream()
|
||||||
.collect(
|
.collect(
|
||||||
@@ -153,15 +153,15 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
|||||||
break;
|
break;
|
||||||
//设计工程师评估
|
//设计工程师评估
|
||||||
case ProcessProjectAssessCommon.SJGCSPG:
|
case ProcessProjectAssessCommon.SJGCSPG:
|
||||||
processProjectAssessTermList = processProjectAssessTermService.getByDesignEngineer(assessmentId,originUserId,executionParentId);
|
processProjectAssessTermList = processProjectAssessTermService.getByDesignEngineer(assessmentId, originUserId, executionParentId);
|
||||||
wrapper.eq(ProcessProjectAssessTermUser::getDesignEngineer,originUserId);
|
wrapper.eq(ProcessProjectAssessTermUser::getDesignEngineer, originUserId);
|
||||||
wrapper.eq(ProcessProjectAssessTermUser::getParentExecutionId,executionParentId);
|
wrapper.eq(ProcessProjectAssessTermUser::getParentExecutionId, executionParentId);
|
||||||
processProjectAssessTermUserList = processProjectAssessTermUserService.list(wrapper);
|
processProjectAssessTermUserList = processProjectAssessTermUserService.list(wrapper);
|
||||||
previousNodeHandlerMap = processProjectAssessTermUserList.stream()
|
previousNodeHandlerMap = processProjectAssessTermUserList.stream()
|
||||||
.collect(
|
.collect(
|
||||||
Collectors.groupingBy(ProcessProjectAssessTermUser::getTermId,
|
Collectors.groupingBy(ProcessProjectAssessTermUser::getTermId,
|
||||||
Collectors.mapping(item -> {
|
Collectors.mapping(item -> {
|
||||||
return userNameMap.get(item.getModuleOwner());
|
return userNameMap.get(item.getModuleOwner());
|
||||||
},
|
},
|
||||||
Collectors.joining(",")))
|
Collectors.joining(",")))
|
||||||
);
|
);
|
||||||
@@ -174,7 +174,7 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
|||||||
.collect(
|
.collect(
|
||||||
Collectors.groupingBy(ProcessProjectAssessTermUser::getTermId,
|
Collectors.groupingBy(ProcessProjectAssessTermUser::getTermId,
|
||||||
Collectors.mapping(item -> {
|
Collectors.mapping(item -> {
|
||||||
return userNameMap.get(item.getResponsibleUnitLeader());
|
return userNameMap.get(item.getResponsibleUnitLeader());
|
||||||
},
|
},
|
||||||
Collectors.joining(",")))
|
Collectors.joining(",")))
|
||||||
);
|
);
|
||||||
@@ -184,7 +184,7 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
|||||||
}
|
}
|
||||||
|
|
||||||
//给条款中保存关联的信息
|
//给条款中保存关联的信息
|
||||||
if (!processProjectAssessTermUserList.isEmpty()){
|
if (!processProjectAssessTermUserList.isEmpty()) {
|
||||||
Map<String, List<ProcessProjectAssessTermUser>> termIdListMap = CollStreamUtil.groupByKey(processProjectAssessTermUserList, ProcessProjectAssessTermUser::getTermId);
|
Map<String, List<ProcessProjectAssessTermUser>> termIdListMap = CollStreamUtil.groupByKey(processProjectAssessTermUserList, ProcessProjectAssessTermUser::getTermId);
|
||||||
for (ProcessProjectAssessTerm term : processProjectAssessTermList) {
|
for (ProcessProjectAssessTerm term : processProjectAssessTermList) {
|
||||||
String termId = term.getId();
|
String termId = term.getId();
|
||||||
@@ -200,7 +200,7 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
|||||||
List<String> usedSplitInfoId = new ArrayList<>();
|
List<String> usedSplitInfoId = new ArrayList<>();
|
||||||
for (ProcessProjectAssessTerm term : processProjectAssessTermList) {
|
for (ProcessProjectAssessTerm term : processProjectAssessTermList) {
|
||||||
String splitInfoId = term.getSplitInfoId();
|
String splitInfoId = term.getSplitInfoId();
|
||||||
if (!usedSplitInfoId.contains(splitInfoId) && splitInfoIdMap.containsKey(splitInfoId)){
|
if (!usedSplitInfoId.contains(splitInfoId) && splitInfoIdMap.containsKey(splitInfoId)) {
|
||||||
usedSplitInfoId.add(splitInfoId);
|
usedSplitInfoId.add(splitInfoId);
|
||||||
ProcessProjectAssessTerm titleTerm = splitInfoIdMap.get(splitInfoId);
|
ProcessProjectAssessTerm titleTerm = splitInfoIdMap.get(splitInfoId);
|
||||||
ProcessProjectAssessTerm term1 = new ProcessProjectAssessTerm();
|
ProcessProjectAssessTerm term1 = new ProcessProjectAssessTerm();
|
||||||
@@ -245,11 +245,11 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
|||||||
processProjectAssessTerm.setAssessmentId(assessmentId);
|
processProjectAssessTerm.setAssessmentId(assessmentId);
|
||||||
Integer canAssignFlag = processProjectAssessTerm.getCanAssignFlag();
|
Integer canAssignFlag = processProjectAssessTerm.getCanAssignFlag();
|
||||||
//如果是不需要分派的先跳过
|
//如果是不需要分派的先跳过
|
||||||
if (YesOrNoEnum.NO.getInteger().equals(canAssignFlag)){
|
if (YesOrNoEnum.NO.getInteger().equals(canAssignFlag)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
String responsibleUnitLeaders = processProjectAssessTerm.getResponsibleUnitLeaders();
|
String responsibleUnitLeaders = processProjectAssessTerm.getResponsibleUnitLeaders();
|
||||||
if (StringUtils.isBlank(responsibleUnitLeaders)){
|
if (StringUtils.isBlank(responsibleUnitLeaders)) {
|
||||||
throw new JeroBootException(ResultCommon.PARAMETER_NOT_RECOGNIZED);
|
throw new JeroBootException(ResultCommon.PARAMETER_NOT_RECOGNIZED);
|
||||||
}
|
}
|
||||||
//去重
|
//去重
|
||||||
@@ -280,10 +280,47 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void approveTask(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO, boolean b) {
|
public void approveTask(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO, boolean pass) {
|
||||||
|
BasicTaskInfoDTO basicTaskInfoDTO = processInfoVO.getBasicTaskInfoDTO();
|
||||||
|
String taskId = basicTaskInfoDTO.getTaskId();
|
||||||
|
ProcessDTO processDTO = processHandleService.getProcessDTO(taskId);
|
||||||
|
String processInstanceId = processDTO.getProcessInstanceId();
|
||||||
|
ProcessAll processAll = processAllService.getByProcessInstanceId(processInstanceId);
|
||||||
|
processInfoVO.setBusinessId(processAll.getProjectId());
|
||||||
|
Task task = processDTO.getTask();
|
||||||
|
String taskDefinitionKey = task.getTaskDefinitionKey();
|
||||||
|
processHandleService.updateApprovalRecord(processInfoVO);
|
||||||
|
switch (taskDefinitionKey) {
|
||||||
|
//模块负责人审批
|
||||||
|
case ProcessProjectAssessCommon.MKFZRSP:
|
||||||
|
mkfzrspApprove(processInfoVO, processDTO, pass);
|
||||||
|
break;
|
||||||
|
//各部门主管级领导(汇总)审批
|
||||||
|
case ProcessProjectAssessCommon.GBMZGJLDSP:
|
||||||
|
gbmzgjldspApprove(processInfoVO, processDTO, pass);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void mkfzrspApprove(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO, ProcessDTO processDTO, boolean pass) {
|
||||||
|
// 完成任务
|
||||||
|
String taskId = processDTO.getTaskId();
|
||||||
|
Map<String, Object> variables = new HashMap<>();
|
||||||
|
variables.put(ProcessProjectAssessCommon.PASS, pass);
|
||||||
|
taskService.complete(taskId, variables);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void gbmzgjldspApprove(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO, ProcessDTO processDTO, boolean pass) {
|
||||||
|
// 完成任务
|
||||||
|
String taskId = processDTO.getTaskId();
|
||||||
|
Map<String, Object> variables = new HashMap<>();
|
||||||
|
variables.put(ProcessProjectAssessCommon.PASS, pass);
|
||||||
|
taskService.complete(taskId, variables);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void submit(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO) {
|
public void submit(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO) {
|
||||||
BasicTaskInfoDTO basicTaskInfoDTO = processInfoVO.getBasicTaskInfoDTO();
|
BasicTaskInfoDTO basicTaskInfoDTO = processInfoVO.getBasicTaskInfoDTO();
|
||||||
String taskId = basicTaskInfoDTO.getTaskId();
|
String taskId = basicTaskInfoDTO.getTaskId();
|
||||||
@@ -293,43 +330,32 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
|||||||
processInfoVO.setBusinessId(processAll.getProjectId());
|
processInfoVO.setBusinessId(processAll.getProjectId());
|
||||||
Task task = processDTO.getTask();
|
Task task = processDTO.getTask();
|
||||||
String taskDefinitionKey = task.getTaskDefinitionKey();
|
String taskDefinitionKey = task.getTaskDefinitionKey();
|
||||||
|
processHandleService.updateApprovalRecord(processInfoVO);
|
||||||
switch (taskDefinitionKey) {
|
switch (taskDefinitionKey) {
|
||||||
//各部门主管级领导下发
|
//各部门主管级领导下发
|
||||||
case ProcessProjectAssessCommon.GBMZGJLDXF:
|
case ProcessProjectAssessCommon.GBMZGJLDXF:
|
||||||
gbmzgjldxfSubmit(processInfoVO,processDTO);
|
gbmzgjldxfSubmit(processInfoVO, processDTO);
|
||||||
break;
|
break;
|
||||||
//模块负责人分发
|
//模块负责人分发
|
||||||
case ProcessProjectAssessCommon.MKFZRFF:
|
case ProcessProjectAssessCommon.MKFZRFF:
|
||||||
mkfzrffSubmit(processInfoVO,processDTO);
|
mkfzrffSubmit(processInfoVO, processDTO);
|
||||||
break;
|
break;
|
||||||
//设计工程师评估
|
//设计工程师评估
|
||||||
case ProcessProjectAssessCommon.SJGCSPG:
|
case ProcessProjectAssessCommon.SJGCSPG:
|
||||||
|
sjgcspgSubmit(processInfoVO, processDTO);
|
||||||
break;
|
break;
|
||||||
//模块负责人修改
|
//模块负责人修改
|
||||||
case ProcessProjectAssessCommon.MKFZRXG:
|
case ProcessProjectAssessCommon.MKFZRXG:
|
||||||
|
mkfzrxgSubmit(processInfoVO, processDTO);
|
||||||
break;
|
break;
|
||||||
//法规工程师归档
|
//法规工程师归档
|
||||||
case ProcessProjectAssessCommon.FGGCSGD:
|
case ProcessProjectAssessCommon.FGGCSGD:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void mkfzrffSubmit(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO, ProcessDTO processDTO) {
|
|
||||||
String businessId = processInfoVO.getBusinessId();
|
|
||||||
ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord();
|
|
||||||
String originUserId = processApprovalRecord.getOriginUserId();
|
|
||||||
Task task = processDTO.getTask();
|
|
||||||
String executionId = task.getExecutionId();
|
|
||||||
// 删除原先存储的关联
|
|
||||||
LambdaQueryWrapper<ProcessProjectAssessTermUser> removeWrapper = new LambdaQueryWrapper<>();
|
|
||||||
removeWrapper.eq(ProcessProjectAssessTermUser::getAssessmentId, businessId);
|
|
||||||
removeWrapper.eq(ProcessProjectAssessTermUser::getResponsibleUnitLeader, originUserId);
|
|
||||||
processProjectAssessTermUserService.remove(removeWrapper);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//各部门主管级领导下发
|
||||||
private void gbmzgjldxfSubmit(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO, ProcessDTO processDTO) {
|
private void gbmzgjldxfSubmit(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO, ProcessDTO processDTO) {
|
||||||
String businessId = processInfoVO.getBusinessId();
|
String businessId = processInfoVO.getBusinessId();
|
||||||
ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord();
|
ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord();
|
||||||
@@ -350,7 +376,7 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
|||||||
String termId = processProjectAssessTerm.getId();
|
String termId = processProjectAssessTerm.getId();
|
||||||
Integer canAssignFlag = processProjectAssessTerm.getCanAssignFlag();
|
Integer canAssignFlag = processProjectAssessTerm.getCanAssignFlag();
|
||||||
String notInvolved = processProjectAssessTerm.getNotInvolved();
|
String notInvolved = processProjectAssessTerm.getNotInvolved();
|
||||||
if (YesOrNoEnum.NO.getInteger().equals(canAssignFlag)){
|
if (YesOrNoEnum.NO.getInteger().equals(canAssignFlag)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (StringUtils.isNotBlank(notInvolved)) {
|
if (StringUtils.isNotBlank(notInvolved)) {
|
||||||
@@ -378,7 +404,7 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
processProjectAssessTermUserService.saveBatch(allTermUserList);
|
processProjectAssessTermUserService.saveBatch(allTermUserList);
|
||||||
if (moduleOwnerIds.isEmpty()){
|
if (moduleOwnerIds.isEmpty()) {
|
||||||
throw new JeroBootException(ResultCommon.ProjectAssess);
|
throw new JeroBootException(ResultCommon.ProjectAssess);
|
||||||
}
|
}
|
||||||
processHandleService.saveNodeUserLink(processDTO.getProcessInstanceId(), ProcessProjectAssessCommon.GBMZGJLDXF, moduleOwnerIds);
|
processHandleService.saveNodeUserLink(processDTO.getProcessInstanceId(), ProcessProjectAssessCommon.GBMZGJLDXF, moduleOwnerIds);
|
||||||
@@ -386,15 +412,139 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
|||||||
String taskId = processDTO.getTaskId();
|
String taskId = processDTO.getTaskId();
|
||||||
Map<String, Object> variables = new HashMap<>();
|
Map<String, Object> variables = new HashMap<>();
|
||||||
variables.put(ProcessProjectAssessCommon.MODULE_OWNER_LIST, moduleOwnerIds);
|
variables.put(ProcessProjectAssessCommon.MODULE_OWNER_LIST, moduleOwnerIds);
|
||||||
variables.put("flowIndex", executionId);
|
taskService.complete(taskId, variables);
|
||||||
taskService.complete(taskId,variables);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//模块负责人分发
|
||||||
|
private void mkfzrffSubmit(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO, ProcessDTO processDTO) {
|
||||||
|
String businessId = processInfoVO.getBusinessId();
|
||||||
|
ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord();
|
||||||
|
String originUserId = processApprovalRecord.getOriginUserId();
|
||||||
|
Task task = processDTO.getTask();
|
||||||
|
String executionId = task.getExecutionId();
|
||||||
|
//拿到一条用于获取责任单位负责人
|
||||||
|
LambdaQueryWrapper<ProcessProjectAssessTermUser> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(ProcessProjectAssessTermUser::getAssessmentId, businessId);
|
||||||
|
wrapper.eq(ProcessProjectAssessTermUser::getModuleOwner, originUserId);
|
||||||
|
wrapper.eq(ProcessProjectAssessTermUser::getParentExecutionId, executionId);
|
||||||
|
wrapper.last("limit 1");
|
||||||
|
ProcessProjectAssessTermUser one = processProjectAssessTermUserService.getOne(wrapper);
|
||||||
|
String responsibleUnitLeader = one.getResponsibleUnitLeader();
|
||||||
|
// 删除原先存储的关联
|
||||||
|
LambdaQueryWrapper<ProcessProjectAssessTermUser> removeWrapper = new LambdaQueryWrapper<>();
|
||||||
|
removeWrapper.eq(ProcessProjectAssessTermUser::getAssessmentId, businessId);
|
||||||
|
removeWrapper.eq(ProcessProjectAssessTermUser::getModuleOwner, originUserId);
|
||||||
|
removeWrapper.eq(ProcessProjectAssessTermUser::getParentExecutionId, executionId);
|
||||||
|
|
||||||
|
processProjectAssessTermUserService.remove(removeWrapper);
|
||||||
|
|
||||||
|
ProcessProjectAssessVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
|
||||||
|
List<ProcessProjectAssessTerm> processProjectAssessTermList = businessInfoDTO.getProcessProjectAssessTermList();
|
||||||
|
List<ProcessProjectAssessTermUser> allTermUserList = new ArrayList<>();
|
||||||
|
List<String> designEngineerIds = new ArrayList<>();
|
||||||
|
for (ProcessProjectAssessTerm processProjectAssessTerm : processProjectAssessTermList) {
|
||||||
|
String termId = processProjectAssessTerm.getId();
|
||||||
|
Integer canAssignFlag = processProjectAssessTerm.getCanAssignFlag();
|
||||||
|
String notInvolved = processProjectAssessTerm.getNotInvolved();
|
||||||
|
if (YesOrNoEnum.NO.getInteger().equals(canAssignFlag)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(notInvolved)) {
|
||||||
|
ProcessProjectAssessTermUser newTermUser = new ProcessProjectAssessTermUser();
|
||||||
|
newTermUser.setAssessmentId(businessId);
|
||||||
|
newTermUser.setTermId(termId);
|
||||||
|
newTermUser.setResponsibleUnitLeader(responsibleUnitLeader);
|
||||||
|
newTermUser.setModuleOwner(originUserId);
|
||||||
|
newTermUser.setParentExecutionId(executionId);
|
||||||
|
newTermUser.setNotInvolved(notInvolved);
|
||||||
|
allTermUserList.add(newTermUser);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
String designEngineers = processProjectAssessTerm.getDesignEngineers();
|
||||||
|
List<String> designEngineerIdList = Arrays.asList(designEngineers.split(","));
|
||||||
|
for (String designEngineerId : designEngineerIdList) {
|
||||||
|
ProcessProjectAssessTermUser newTermUser = new ProcessProjectAssessTermUser();
|
||||||
|
newTermUser.setAssessmentId(businessId);
|
||||||
|
newTermUser.setTermId(termId);
|
||||||
|
newTermUser.setResponsibleUnitLeader(responsibleUnitLeader);
|
||||||
|
newTermUser.setParentExecutionId(executionId);
|
||||||
|
newTermUser.setModuleOwner(originUserId);
|
||||||
|
newTermUser.setDesignEngineer(designEngineerId);
|
||||||
|
designEngineerIds.add(designEngineerId);
|
||||||
|
allTermUserList.add(newTermUser);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
processProjectAssessTermUserService.saveBatch(allTermUserList);
|
||||||
|
if (designEngineerIds.isEmpty()) {
|
||||||
|
throw new JeroBootException(ResultCommon.ProjectAssess);
|
||||||
|
}
|
||||||
|
processHandleService.saveNodeUserLink(processDTO.getProcessInstanceId(), ProcessProjectAssessCommon.MKFZRFF, designEngineerIds);
|
||||||
|
// 完成任务
|
||||||
|
String taskId = processDTO.getTaskId();
|
||||||
|
Map<String, Object> variables = new HashMap<>();
|
||||||
|
variables.put(ProcessProjectAssessCommon.DESIGN_ENGINEER_LIST, designEngineerIds);
|
||||||
|
taskService.complete(taskId, variables);
|
||||||
|
}
|
||||||
|
|
||||||
|
//设计工程师评估
|
||||||
|
private void sjgcspgSubmit(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO, ProcessDTO processDTO) {
|
||||||
|
String businessId = processInfoVO.getBusinessId();
|
||||||
|
ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord();
|
||||||
|
String originUserId = processApprovalRecord.getOriginUserId();
|
||||||
|
Task task = processDTO.getTask();
|
||||||
|
String executionId = task.getExecutionId();
|
||||||
|
|
||||||
|
ProcessProjectAssessVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
|
||||||
|
List<ProcessProjectAssessTerm> processProjectAssessTermList = businessInfoDTO.getProcessProjectAssessTermList();
|
||||||
|
List<ProcessProjectAssessTermUser> allTermUserList = new ArrayList<>();
|
||||||
|
for (ProcessProjectAssessTerm processProjectAssessTerm : processProjectAssessTermList) {
|
||||||
|
ProcessProjectAssessTermUser termUser = new ProcessProjectAssessTermUser();
|
||||||
|
termUser.setId(processProjectAssessTerm.getTermUserId());
|
||||||
|
termUser.setEvaluationFeedback(processProjectAssessTerm.getEvaluationFeedback());
|
||||||
|
termUser.setDescription(processProjectAssessTerm.getDescription());
|
||||||
|
termUser.setFileId(processProjectAssessTerm.getFileId());
|
||||||
|
termUser.setExpectedTime(processProjectAssessTerm.getExpectedTime());
|
||||||
|
allTermUserList.add(termUser);
|
||||||
|
}
|
||||||
|
processProjectAssessTermUserService.updateBatchById(allTermUserList);
|
||||||
|
// 完成任务
|
||||||
|
String taskId = processDTO.getTaskId();
|
||||||
|
taskService.complete(taskId);
|
||||||
|
}
|
||||||
|
|
||||||
|
//模块负责人修改
|
||||||
|
private void mkfzrxgSubmit(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO, ProcessDTO processDTO) {
|
||||||
|
String businessId = processInfoVO.getBusinessId();
|
||||||
|
ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord();
|
||||||
|
String originUserId = processApprovalRecord.getOriginUserId();
|
||||||
|
Task task = processDTO.getTask();
|
||||||
|
String executionId = task.getExecutionId();
|
||||||
|
|
||||||
|
ProcessProjectAssessVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
|
||||||
|
List<ProcessProjectAssessTerm> processProjectAssessTermList = businessInfoDTO.getProcessProjectAssessTermList();
|
||||||
|
List<ProcessProjectAssessTermUser> allTermUserList = new ArrayList<>();
|
||||||
|
for (ProcessProjectAssessTerm processProjectAssessTerm : processProjectAssessTermList) {
|
||||||
|
ProcessProjectAssessTermUser termUser = new ProcessProjectAssessTermUser();
|
||||||
|
termUser.setId(processProjectAssessTerm.getTermUserId());
|
||||||
|
termUser.setEvaluationFeedback(processProjectAssessTerm.getEvaluationFeedback());
|
||||||
|
termUser.setDescription(processProjectAssessTerm.getDescription());
|
||||||
|
termUser.setFileId(processProjectAssessTerm.getFileId());
|
||||||
|
termUser.setExpectedTime(processProjectAssessTerm.getExpectedTime());
|
||||||
|
allTermUserList.add(termUser);
|
||||||
|
}
|
||||||
|
processProjectAssessTermUserService.updateBatchById(allTermUserList);
|
||||||
|
// 完成任务
|
||||||
|
String taskId = processDTO.getTaskId();
|
||||||
|
taskService.complete(taskId);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void saveToDraft(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO) {
|
public void saveToDraft(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO) {
|
||||||
ProcessProjectAssessVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
|
ProcessProjectAssessVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
|
||||||
if (businessInfoDTO!=null){
|
if (businessInfoDTO != null) {
|
||||||
ProcessProjectAssess processProjectAssess = businessInfoDTO.getProcessProjectAssess();
|
ProcessProjectAssess processProjectAssess = businessInfoDTO.getProcessProjectAssess();
|
||||||
if (processProjectAssess!=null){
|
if (processProjectAssess != null) {
|
||||||
processInfoVO.setBusinessId(processProjectAssess.getId());
|
processInfoVO.setBusinessId(processProjectAssess.getId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -410,39 +560,30 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
|||||||
String taskDefinitionKey = delegateTask.getTaskDefinitionKey();
|
String taskDefinitionKey = delegateTask.getTaskDefinitionKey();
|
||||||
String assignee = delegateTask.getAssignee();
|
String assignee = delegateTask.getAssignee();
|
||||||
String processInstanceId = delegateTask.getProcessInstanceId();
|
String processInstanceId = delegateTask.getProcessInstanceId();
|
||||||
|
String nodeId = null;
|
||||||
|
switch (taskDefinitionKey) {
|
||||||
|
//模块负责人分发
|
||||||
|
case ProcessProjectAssessCommon.MKFZRFF:
|
||||||
|
nodeId = ProcessProjectAssessCommon.GBMZGJLDSP;
|
||||||
|
break;
|
||||||
|
//设计工程师评估
|
||||||
|
case ProcessProjectAssessCommon.SJGCSPG:
|
||||||
|
nodeId = ProcessProjectAssessCommon.MKFZRFF;
|
||||||
|
break;
|
||||||
|
//模块负责人审批
|
||||||
|
case ProcessProjectAssessCommon.MKFZRSP:
|
||||||
|
nodeId = ProcessProjectAssessCommon.MKFZRFF;
|
||||||
|
//模块负责人修改
|
||||||
|
case ProcessProjectAssessCommon.MKFZRXG:
|
||||||
|
nodeId = ProcessProjectAssessCommon.GBMZGJLDSP;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
}
|
||||||
//查询我最新提交的task
|
//查询我最新提交的task
|
||||||
ProcessApprovalRecord myLastComplete = processApprovalRecordService.getMyLastComplete(processInstanceId);
|
ProcessApprovalRecord myLastComplete = processApprovalRecordService.getMyLastComplete(processInstanceId, nodeId);
|
||||||
String lastCompleteTaskId = myLastComplete.getTaskId();
|
String lastCompleteTaskId = myLastComplete.getTaskId();
|
||||||
ProcessDTO processDTO = processHandleService.getProcessDTO(lastCompleteTaskId);
|
ProcessDTO processDTO = processHandleService.getProcessDTO(lastCompleteTaskId);
|
||||||
Execution execution = processDTO.getExecution();
|
Execution execution = processDTO.getExecution();
|
||||||
delegateTask.setFormKey(execution.getId());
|
delegateTask.setFormKey(execution.getId());
|
||||||
switch (taskDefinitionKey) {
|
|
||||||
//各部门主管级领导下发
|
|
||||||
case ProcessProjectAssessCommon.GBMZGJLDXF:
|
|
||||||
break;
|
|
||||||
//各部门主管级领导(汇总)审批
|
|
||||||
case ProcessProjectAssessCommon.GBMZGJLDSP:
|
|
||||||
|
|
||||||
break;
|
|
||||||
//模块负责人分发
|
|
||||||
case ProcessProjectAssessCommon.MKFZRFF:
|
|
||||||
break;
|
|
||||||
//模块负责人审批
|
|
||||||
case ProcessProjectAssessCommon.MKFZRSP:
|
|
||||||
//模块负责人修改
|
|
||||||
case ProcessProjectAssessCommon.MKFZRXG:
|
|
||||||
|
|
||||||
break;
|
|
||||||
//设计工程师评估
|
|
||||||
case ProcessProjectAssessCommon.SJGCSPG:
|
|
||||||
|
|
||||||
break;
|
|
||||||
//法规工程师归档
|
|
||||||
case ProcessProjectAssessCommon.FGGCSGD:
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -53,11 +53,12 @@ public class ProcessApprovalRecordService extends ServiceImpl<ProcessApprovalRec
|
|||||||
return pageList;
|
return pageList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ProcessApprovalRecord getMyLastComplete(String processInstanceId) {
|
public ProcessApprovalRecord getMyLastComplete(String processInstanceId,String nodeId) {
|
||||||
LambdaQueryWrapper<ProcessApprovalRecord> wrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<ProcessApprovalRecord> wrapper = new LambdaQueryWrapper<>();
|
||||||
wrapper.eq(ProcessApprovalRecord::getProcessInstanceId,processInstanceId);
|
wrapper.eq(ProcessApprovalRecord::getProcessInstanceId,processInstanceId);
|
||||||
wrapper.eq(ProcessApprovalRecord::getUserId, CurrentUserUtil.getId());
|
wrapper.eq(ProcessApprovalRecord::getUserId, CurrentUserUtil.getId());
|
||||||
wrapper.eq(ProcessApprovalRecord::getFinishFlag,FinishFlagEnum.COMPLETE.getValue());
|
wrapper.eq(ProcessApprovalRecord::getFinishFlag,FinishFlagEnum.COMPLETE.getValue());
|
||||||
|
wrapper.eq(StringUtils.isNotBlank(nodeId), ProcessApprovalRecord::getNodeId,nodeId);
|
||||||
wrapper.orderByDesc(ProcessApprovalRecord::getEndTime);
|
wrapper.orderByDesc(ProcessApprovalRecord::getEndTime);
|
||||||
wrapper.last("limit 1");
|
wrapper.last("limit 1");
|
||||||
ProcessApprovalRecord approvalRecord = this.getOne(wrapper);
|
ProcessApprovalRecord approvalRecord = this.getOne(wrapper);
|
||||||
|
|||||||
Reference in New Issue
Block a user