fix 81039 工作中心-流程中心-草稿:按创建时间排序无效
This commit is contained in:
+28
-8
@@ -1,17 +1,20 @@
|
||||
package com.jero.modules.activiti.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.api.vo.ResultCommon;
|
||||
import com.jero.common.aspect.annotation.AutoLog;
|
||||
import com.jero.common.system.query.QueryGenerator;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.common.util.MessageUtils;
|
||||
import com.jero.modules.activiti.entity.ProcessAll;
|
||||
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
||||
import com.jero.modules.activiti.enums.FinishFlagEnum;
|
||||
import com.jero.modules.activiti.enums.ProcessStatusEnum;
|
||||
import com.jero.modules.activiti.process.common.common.DraftCommon;
|
||||
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
|
||||
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
|
||||
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
|
||||
@@ -19,6 +22,7 @@ import com.jero.modules.activiti.service.ProcessAllService;
|
||||
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
||||
import com.jero.modules.activiti.vo.DelegateTaskParam;
|
||||
import com.jero.modules.activiti.vo.ResolveTaskParam;
|
||||
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -30,6 +34,7 @@ import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @author liJiaRao
|
||||
@@ -118,8 +123,10 @@ public class WorkCenterController {
|
||||
@ApiOperation(value = "查询流程审批记录")
|
||||
@GetMapping("/getApprovalRecordList")
|
||||
public Result<?> getApprovalRecordList(ProcessApprovalRecord processApprovalRecord,
|
||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
Page<ProcessApprovalRecord> page = new Page<>(1, Integer.MAX_VALUE);
|
||||
Page<ProcessApprovalRecord> page = new Page<>(pageNo, pageSize);
|
||||
Page<ProcessApprovalRecord> pageList;
|
||||
try {
|
||||
pageList = processApprovalRecordService.pageList(page, processApprovalRecord, req);
|
||||
@@ -135,15 +142,28 @@ public class WorkCenterController {
|
||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
QueryWrapper<ProcessDraft> queryWrapper = new QueryWrapper<>();
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
String userId = loginUser.getId();
|
||||
queryWrapper.eq("create_by",userId);
|
||||
Integer prcType = processDraft.getPrcType();
|
||||
queryWrapper.eq(prcType != null, "prc_type", prcType);
|
||||
|
||||
LambdaQueryWrapper<ProcessDraft> queryWrapper = QueryGenerator.initQueryWrapper(processDraft,req.getParameterMap()).lambda();
|
||||
queryWrapper.eq(ProcessDraft::getUserId, CurrentUserUtil.getId());
|
||||
queryWrapper.isNull(ProcessDraft::getTaskId);
|
||||
queryWrapper.and(a -> {
|
||||
a.ne(ProcessDraft::getSaveSource, DraftCommon.INITIAL_SOURCE)
|
||||
.or()
|
||||
.isNull(ProcessDraft::getSaveSource);
|
||||
});
|
||||
//queryWrapper.eq(!Objects.isNull(processDraft.getPrcType()), ProcessDraft::getPrcType, processDraft.getPrcType());
|
||||
Page<ProcessDraft> page = new Page<>(pageNo, pageSize);
|
||||
IPage<ProcessDraft> sentList = processDraftService.page(page, queryWrapper);
|
||||
sentList.getRecords().forEach(item -> {
|
||||
String taskId = item.getTaskId();
|
||||
if (StringUtils.isBlank(taskId)){
|
||||
return;
|
||||
}
|
||||
ProcessApprovalRecord record = processApprovalRecordService.getToDoByTaskId(taskId);
|
||||
if (record != null) {
|
||||
item.setNodeId(record.getNodeId());
|
||||
item.setNodeName(record.getTaskName());
|
||||
}
|
||||
});
|
||||
return Result.OK(sentList);
|
||||
}
|
||||
|
||||
|
||||
+7
-1
@@ -52,7 +52,10 @@
|
||||
</select>
|
||||
|
||||
<select id="getAllList" resultType="com.jero.modules.activiti.entity.ProcessAll">
|
||||
select p.*, group_concat(par.user_id) as handleUserId
|
||||
select p.*, case
|
||||
when p.prc_status = 1 then group_concat(par.user_id)
|
||||
when p.prc_status = 3 then group_concat(par2.user_id)
|
||||
end as handleUserId
|
||||
from (
|
||||
select pa.*, max(par.create_time) as receivedTaskTime, max(par.end_time) as completedTaskTime, par.node_id
|
||||
from process_all pa
|
||||
@@ -62,6 +65,9 @@
|
||||
LEFT JOIN (
|
||||
SELECT user_id,process_instance_id from process_approval_record WHERE finish_flag = 1
|
||||
) par ON p.process_instance_id = par.process_instance_id
|
||||
LEFT JOIN (
|
||||
SELECT user_id,process_instance_id from process_approval_record WHERE finish_flag = 4
|
||||
) par2 ON p.process_instance_id = par2.process_instance_id
|
||||
group by p.process_instance_id
|
||||
<include refid="order"/>
|
||||
</select>
|
||||
|
||||
+1
-50
@@ -30,6 +30,7 @@ import org.activiti.engine.history.HistoricProcessInstance;
|
||||
import org.activiti.engine.runtime.Execution;
|
||||
import org.activiti.engine.runtime.ProcessInstance;
|
||||
import org.activiti.engine.task.Task;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.ss.formula.functions.T;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
@@ -82,54 +83,4 @@ public class ProcessFbInfoController {
|
||||
return Result.OK(processNodeList);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "查询草稿")
|
||||
@GetMapping("/getDraftList")
|
||||
public Result<IPage<ProcessDraft>> getDraftList(ProcessDraft processDraft,
|
||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||
LambdaQueryWrapper<ProcessDraft> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(ProcessDraft::getUserId, CurrentUserUtil.getId());
|
||||
queryWrapper.isNull(ProcessDraft::getTaskId);
|
||||
queryWrapper.and(a -> {
|
||||
a.ne(ProcessDraft::getSaveSource, DraftCommon.INITIAL_SOURCE)
|
||||
.or()
|
||||
.isNull(ProcessDraft::getSaveSource);
|
||||
});
|
||||
queryWrapper.eq(!Objects.isNull(processDraft.getPrcType()), ProcessDraft::getPrcType, processDraft.getPrcType());
|
||||
Page<ProcessDraft> page = new Page<>(pageNo, pageSize);
|
||||
IPage<ProcessDraft> sentList = processDraftService.page(page, queryWrapper);
|
||||
sentList.getRecords().forEach(item -> {
|
||||
ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(item.getTaskId());
|
||||
if (record != null) {
|
||||
item.setNodeId(record.getNodeId());
|
||||
item.setNodeName(record.getTaskName());
|
||||
}
|
||||
});
|
||||
return Result.OK(sentList);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "测试")
|
||||
@GetMapping("/test")
|
||||
public Result<T> test() {
|
||||
String processInstanceId = "20231117135055516";
|
||||
// 查询正在执行的多实例子流程的执行实例列表
|
||||
List<Execution> executions = runtimeService.createExecutionQuery()
|
||||
.processInstanceId(processInstanceId)
|
||||
.activityId("depart_leader_start_1") // 指定多实例活动的ID
|
||||
.list();
|
||||
|
||||
// 遍历执行实例列表
|
||||
System.out.println("processInstanceId: " + processInstanceId);
|
||||
for (Execution execution : executions) {
|
||||
// 获取执行实例的ID,即每个实例的唯一标识
|
||||
System.out.println("Id: " + execution.getId());
|
||||
System.out.println("SuperExecutionId: " + execution.getSuperExecutionId());
|
||||
System.out.println("ParentId: " + execution.getParentId());
|
||||
System.out.println("RootProcessInstanceId: " + execution.getRootProcessInstanceId());
|
||||
System.out.println("ProcessInstanceId: " + execution.getProcessInstanceId());
|
||||
// 执行其他逻辑,例如查询与该实例相关的任务等
|
||||
}
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -159,24 +159,6 @@ public class ProcessAllService extends ServiceImpl<ProcessAllMapper, ProcessAll>
|
||||
.eq(ProcessAll::getId, processAll.getId())
|
||||
.set(ProcessAll::getPrcStatus, ProcessStatusEnum.WITHDRAWN.getValue()));
|
||||
|
||||
// 更新最后一条待办人员为流程发起人
|
||||
WorkCenterController workCenterController = SpringContextUtil.getBean(WorkCenterController.class);
|
||||
ProcessApprovalRecord processApprovalRecord1 = new ProcessApprovalRecord();
|
||||
processApprovalRecord1.setProcessInstanceId(processInstanceId);
|
||||
Result<?> approvalRecordList = workCenterController.getApprovalRecordList(processApprovalRecord1, null);
|
||||
if (!Objects.isNull(approvalRecordList.getResult())){
|
||||
Page<ProcessApprovalRecord> pageList = (Page<ProcessApprovalRecord>) approvalRecordList.getResult();
|
||||
if (CollectionUtils.isNotEmpty(pageList.getRecords())){
|
||||
List<ProcessApprovalRecord> processApprovalRecords = JSON.parseArray(JSON.toJSONString(pageList.getRecords()), ProcessApprovalRecord.class);
|
||||
if (CollectionUtils.isNotEmpty(processApprovalRecords)){
|
||||
approvalRecordService.update(
|
||||
new LambdaUpdateWrapper<ProcessApprovalRecord>()
|
||||
.eq(ProcessApprovalRecord::getId, processApprovalRecords.get(0).getId())
|
||||
.set(ProcessApprovalRecord::getUserId, processApprovalRecords.get(processApprovalRecords.size() - 1).getOriginUserId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//新增撤销审批记录
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
ProcessApprovalRecord processApprovalRecord = new ProcessApprovalRecord();
|
||||
|
||||
Reference in New Issue
Block a user