fix 81039 工作中心-流程中心-草稿:按创建时间排序无效
This commit is contained in:
+28
-8
@@ -1,17 +1,20 @@
|
|||||||
package com.jero.modules.activiti.controller;
|
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.conditions.query.QueryWrapper;
|
||||||
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.jero.common.api.vo.Result;
|
import com.jero.common.api.vo.Result;
|
||||||
import com.jero.common.api.vo.ResultCommon;
|
import com.jero.common.api.vo.ResultCommon;
|
||||||
import com.jero.common.aspect.annotation.AutoLog;
|
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.system.vo.LoginUser;
|
||||||
import com.jero.common.util.MessageUtils;
|
import com.jero.common.util.MessageUtils;
|
||||||
import com.jero.modules.activiti.entity.ProcessAll;
|
import com.jero.modules.activiti.entity.ProcessAll;
|
||||||
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
||||||
import com.jero.modules.activiti.enums.FinishFlagEnum;
|
import com.jero.modules.activiti.enums.FinishFlagEnum;
|
||||||
import com.jero.modules.activiti.enums.ProcessStatusEnum;
|
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.entity.ProcessDraft;
|
||||||
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
|
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
|
||||||
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
|
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.service.ProcessApprovalRecordService;
|
||||||
import com.jero.modules.activiti.vo.DelegateTaskParam;
|
import com.jero.modules.activiti.vo.DelegateTaskParam;
|
||||||
import com.jero.modules.activiti.vo.ResolveTaskParam;
|
import com.jero.modules.activiti.vo.ResolveTaskParam;
|
||||||
|
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -30,6 +34,7 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author liJiaRao
|
* @author liJiaRao
|
||||||
@@ -118,8 +123,10 @@ public class WorkCenterController {
|
|||||||
@ApiOperation(value = "查询流程审批记录")
|
@ApiOperation(value = "查询流程审批记录")
|
||||||
@GetMapping("/getApprovalRecordList")
|
@GetMapping("/getApprovalRecordList")
|
||||||
public Result<?> getApprovalRecordList(ProcessApprovalRecord processApprovalRecord,
|
public Result<?> getApprovalRecordList(ProcessApprovalRecord processApprovalRecord,
|
||||||
|
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
|
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
|
||||||
HttpServletRequest req) {
|
HttpServletRequest req) {
|
||||||
Page<ProcessApprovalRecord> page = new Page<>(1, Integer.MAX_VALUE);
|
Page<ProcessApprovalRecord> page = new Page<>(pageNo, pageSize);
|
||||||
Page<ProcessApprovalRecord> pageList;
|
Page<ProcessApprovalRecord> pageList;
|
||||||
try {
|
try {
|
||||||
pageList = processApprovalRecordService.pageList(page, processApprovalRecord, req);
|
pageList = processApprovalRecordService.pageList(page, processApprovalRecord, req);
|
||||||
@@ -135,15 +142,28 @@ public class WorkCenterController {
|
|||||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
|
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
|
||||||
HttpServletRequest req) {
|
HttpServletRequest req) {
|
||||||
QueryWrapper<ProcessDraft> queryWrapper = new QueryWrapper<>();
|
LambdaQueryWrapper<ProcessDraft> queryWrapper = QueryGenerator.initQueryWrapper(processDraft,req.getParameterMap()).lambda();
|
||||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
queryWrapper.eq(ProcessDraft::getUserId, CurrentUserUtil.getId());
|
||||||
String userId = loginUser.getId();
|
queryWrapper.isNull(ProcessDraft::getTaskId);
|
||||||
queryWrapper.eq("create_by",userId);
|
queryWrapper.and(a -> {
|
||||||
Integer prcType = processDraft.getPrcType();
|
a.ne(ProcessDraft::getSaveSource, DraftCommon.INITIAL_SOURCE)
|
||||||
queryWrapper.eq(prcType != null, "prc_type", prcType);
|
.or()
|
||||||
|
.isNull(ProcessDraft::getSaveSource);
|
||||||
|
});
|
||||||
|
//queryWrapper.eq(!Objects.isNull(processDraft.getPrcType()), ProcessDraft::getPrcType, processDraft.getPrcType());
|
||||||
Page<ProcessDraft> page = new Page<>(pageNo, pageSize);
|
Page<ProcessDraft> page = new Page<>(pageNo, pageSize);
|
||||||
IPage<ProcessDraft> sentList = processDraftService.page(page, queryWrapper);
|
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);
|
return Result.OK(sentList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+7
-1
@@ -52,7 +52,10 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getAllList" resultType="com.jero.modules.activiti.entity.ProcessAll">
|
<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 (
|
from (
|
||||||
select pa.*, max(par.create_time) as receivedTaskTime, max(par.end_time) as completedTaskTime, par.node_id
|
select pa.*, max(par.create_time) as receivedTaskTime, max(par.end_time) as completedTaskTime, par.node_id
|
||||||
from process_all pa
|
from process_all pa
|
||||||
@@ -62,6 +65,9 @@
|
|||||||
LEFT JOIN (
|
LEFT JOIN (
|
||||||
SELECT user_id,process_instance_id from process_approval_record WHERE finish_flag = 1
|
SELECT user_id,process_instance_id from process_approval_record WHERE finish_flag = 1
|
||||||
) par ON p.process_instance_id = par.process_instance_id
|
) 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
|
group by p.process_instance_id
|
||||||
<include refid="order"/>
|
<include refid="order"/>
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
+1
-50
@@ -30,6 +30,7 @@ import org.activiti.engine.history.HistoricProcessInstance;
|
|||||||
import org.activiti.engine.runtime.Execution;
|
import org.activiti.engine.runtime.Execution;
|
||||||
import org.activiti.engine.runtime.ProcessInstance;
|
import org.activiti.engine.runtime.ProcessInstance;
|
||||||
import org.activiti.engine.task.Task;
|
import org.activiti.engine.task.Task;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.poi.ss.formula.functions.T;
|
import org.apache.poi.ss.formula.functions.T;
|
||||||
import org.apache.shiro.SecurityUtils;
|
import org.apache.shiro.SecurityUtils;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
@@ -82,54 +83,4 @@ public class ProcessFbInfoController {
|
|||||||
return Result.OK(processNodeList);
|
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())
|
.eq(ProcessAll::getId, processAll.getId())
|
||||||
.set(ProcessAll::getPrcStatus, ProcessStatusEnum.WITHDRAWN.getValue()));
|
.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();
|
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||||
ProcessApprovalRecord processApprovalRecord = new ProcessApprovalRecord();
|
ProcessApprovalRecord processApprovalRecord = new ProcessApprovalRecord();
|
||||||
|
|||||||
Reference in New Issue
Block a user