fix 79296 流程中心-排序都是按照时间正序排列的,建议倒序排列

This commit is contained in:
lijiarao
2024-01-12 11:16:08 +08:00
parent 76d2815f0e
commit fa8b450e2c
5 changed files with 51 additions and 30 deletions
@@ -30,6 +30,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
@@ -56,7 +57,7 @@ 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<ProcessAll> queryWrapper = getProcessAllQueryWrapper(processAll); QueryWrapper<ProcessAll> queryWrapper = getProcessAllQueryWrapper(processAll, false);
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String userId = loginUser.getId(); String userId = loginUser.getId();
queryWrapper.eq("par.user_id",userId); queryWrapper.eq("par.user_id",userId);
@@ -64,7 +65,7 @@ public class WorkCenterController {
queryWrapper.ne("pa.prc_status", ProcessStatusEnum.WITHDRAWN.getValue()); queryWrapper.ne("pa.prc_status", ProcessStatusEnum.WITHDRAWN.getValue());
Page<ProcessAll> page = new Page<>(pageNo, pageSize); Page<ProcessAll> page = new Page<>(pageNo, pageSize);
IPage<ProcessAll> todoList = processAllService.getTodoList(page, queryWrapper); IPage<ProcessAll> todoList = processAllService.getTodoList(page, queryWrapper, req);
return Result.OK(todoList); return Result.OK(todoList);
} }
@@ -74,14 +75,14 @@ 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<ProcessAll> queryWrapper = getProcessAllQueryWrapper(processAll); QueryWrapper<ProcessAll> queryWrapper = getProcessAllQueryWrapper(processAll,true);
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String userId = loginUser.getId(); String userId = loginUser.getId();
queryWrapper.eq("par.user_id",userId); queryWrapper.eq("par.user_id",userId);
queryWrapper.eq("par.finish_flag",FinishFlagEnum.COMPLETE.getValue()); queryWrapper.eq("par.finish_flag",FinishFlagEnum.COMPLETE.getValue());
queryWrapper.ne("pa.prc_status", ProcessStatusEnum.WITHDRAWN.getValue()); queryWrapper.ne("pa.prc_status", ProcessStatusEnum.WITHDRAWN.getValue());
Page<ProcessAll> page = new Page<>(pageNo, pageSize); Page<ProcessAll> page = new Page<>(pageNo, pageSize);
IPage<ProcessAll> completedList = processAllService.getCompletedList(page, queryWrapper); IPage<ProcessAll> completedList = processAllService.getCompletedList(page, queryWrapper, req);
return Result.OK(completedList); return Result.OK(completedList);
} }
@@ -91,14 +92,14 @@ 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<ProcessAll> queryWrapper = getProcessAllQueryWrapper(processAll); QueryWrapper<ProcessAll> queryWrapper = getProcessAllQueryWrapper(processAll, true);
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String userId = loginUser.getId(); String userId = loginUser.getId();
queryWrapper.eq("pa.create_user_id",userId); queryWrapper.eq("pa.create_user_id",userId);
queryWrapper.ne("pa.prc_status", ProcessStatusEnum.WITHDRAWN.getValue()); queryWrapper.ne("pa.prc_status", ProcessStatusEnum.WITHDRAWN.getValue());
Page<ProcessAll> page = new Page<>(pageNo, pageSize); Page<ProcessAll> page = new Page<>(pageNo, pageSize);
IPage<ProcessAll> sentList = processAllService.getSentList(page, queryWrapper); IPage<ProcessAll> sentList = processAllService.getSentList(page, queryWrapper, req);
return Result.OK(sentList); return Result.OK(sentList);
} }
@@ -108,10 +109,10 @@ 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<ProcessAll> queryWrapper = getProcessAllQueryWrapper(processAll); QueryWrapper<ProcessAll> queryWrapper = getProcessAllQueryWrapper(processAll, true);
Page<ProcessAll> page = new Page<>(pageNo, pageSize); Page<ProcessAll> page = new Page<>(pageNo, pageSize);
IPage<ProcessAll> sentList = processAllService.getAllList(page, queryWrapper); IPage<ProcessAll> sentList = processAllService.getAllList(page, queryWrapper, req);
return Result.OK(sentList); return Result.OK(sentList);
} }
@@ -148,7 +149,7 @@ public class WorkCenterController {
} }
@NotNull @NotNull
private QueryWrapper<ProcessAll> getProcessAllQueryWrapper(ProcessAll processAll) { private QueryWrapper<ProcessAll> getProcessAllQueryWrapper(ProcessAll processAll, boolean groupBy) {
String prcName = processAll.getPrcName(); String prcName = processAll.getPrcName();
String prcNum = processAll.getPrcNum(); String prcNum = processAll.getPrcNum();
Integer prcType = processAll.getPrcType(); Integer prcType = processAll.getPrcType();
@@ -158,8 +159,7 @@ public class WorkCenterController {
queryWrapper.like(StringUtils.isNotBlank(prcNum), "pa.prc_num", "%" + prcNum + "%"); queryWrapper.like(StringUtils.isNotBlank(prcNum), "pa.prc_num", "%" + prcNum + "%");
queryWrapper.eq(prcType != null, "pa.prc_type", prcType); queryWrapper.eq(prcType != null, "pa.prc_type", prcType);
queryWrapper.eq(prcStatus != null, "pa.prc_status", prcStatus); queryWrapper.eq(prcStatus != null, "pa.prc_status", prcStatus);
queryWrapper.groupBy(groupBy, "pa.id");
return queryWrapper; return queryWrapper;
} }
@@ -14,11 +14,11 @@ import org.apache.ibatis.annotations.Param;
*@date 2023-10-16 15:49 *@date 2023-10-16 15:49
*/ */
public interface ProcessAllMapper extends BaseMapper<ProcessAll> { public interface ProcessAllMapper extends BaseMapper<ProcessAll> {
IPage<ProcessAll> getTodoList(Page<ProcessAll> page, @Param(Constants.WRAPPER) QueryWrapper<ProcessAll> queryWrapper); IPage<ProcessAll> getTodoList(Page<ProcessAll> page, @Param(Constants.WRAPPER) QueryWrapper<ProcessAll> queryWrapper, @Param("column") String column, @Param("order") String order);
IPage<ProcessAll> getCompletedList(Page<ProcessAll> page, @Param(Constants.WRAPPER) QueryWrapper<ProcessAll> queryWrapper); IPage<ProcessAll> getCompletedList(Page<ProcessAll> page, @Param(Constants.WRAPPER) QueryWrapper<ProcessAll> queryWrapper, @Param("column") String column, @Param("order") String order);
IPage<ProcessAll> getSentList(Page<ProcessAll> page, @Param(Constants.WRAPPER) QueryWrapper<ProcessAll> queryWrapper); IPage<ProcessAll> getSentList(Page<ProcessAll> page, @Param(Constants.WRAPPER) QueryWrapper<ProcessAll> queryWrapper, @Param("column") String column, @Param("order") String order);
IPage<ProcessAll> getAllList(Page<ProcessAll> page, @Param(Constants.WRAPPER) QueryWrapper<ProcessAll> queryWrapper); IPage<ProcessAll> getAllList(Page<ProcessAll> page, @Param(Constants.WRAPPER) QueryWrapper<ProcessAll> queryWrapper, @Param("column") String column, @Param("order") String order);
} }
@@ -1,11 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.activiti.mapper.ProcessAllMapper"> <mapper namespace="com.jero.modules.activiti.mapper.ProcessAllMapper">
<sql id="order">
<!--@sql select create_time as receivedTaskTime from process_all -->
<if test="column == 'receivedTaskTime'">
order by receivedTaskTime
<if test="order == 'desc'">
desc
</if>
</if>
</sql>
<select id="getTodoList" resultType="com.jero.modules.activiti.entity.ProcessAll"> <select id="getTodoList" resultType="com.jero.modules.activiti.entity.ProcessAll">
select pa.*,par.create_time as receivedTaskTime,par.task_id,par.task_name, par.node_id select pa.*,par.create_time as receivedTaskTime,par.task_id,par.task_name, par.node_id
from process_all pa from process_all pa
left join process_approval_record par on pa.process_instance_id = par.process_instance_id left join process_approval_record par on pa.process_instance_id = par.process_instance_id
${ew.customSqlSegment} ${ew.customSqlSegment}
<include refid="order"/>
</select> </select>
<select id="getCompletedList" resultType="com.jero.modules.activiti.entity.ProcessAll"> <select id="getCompletedList" resultType="com.jero.modules.activiti.entity.ProcessAll">
@@ -18,12 +28,12 @@
from process_all pa from process_all pa
left join process_approval_record par on pa.process_instance_id = par.process_instance_id left join process_approval_record par on pa.process_instance_id = par.process_instance_id
${ew.customSqlSegment} ${ew.customSqlSegment}
group by pa.id
) p ) p
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
group by p.process_instance_id group by p.process_instance_id
<include refid="order"/>
</select> </select>
<select id="getSentList" resultType="com.jero.modules.activiti.entity.ProcessAll"> <select id="getSentList" resultType="com.jero.modules.activiti.entity.ProcessAll">
@@ -33,12 +43,12 @@
from process_all pa from process_all pa
left join process_approval_record par on pa.process_instance_id = par.process_instance_id left join process_approval_record par on pa.process_instance_id = par.process_instance_id
${ew.customSqlSegment} ${ew.customSqlSegment}
group by pa.id
) p ) p
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
group by p.process_instance_id group by p.process_instance_id
<include refid="order"/>
</select> </select>
<select id="getAllList" resultType="com.jero.modules.activiti.entity.ProcessAll"> <select id="getAllList" resultType="com.jero.modules.activiti.entity.ProcessAll">
@@ -48,11 +58,11 @@
from process_all pa from process_all pa
left join process_approval_record par on pa.process_instance_id = par.process_instance_id left join process_approval_record par on pa.process_instance_id = par.process_instance_id
${ew.customSqlSegment} ${ew.customSqlSegment}
group by pa.id
) p ) p
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
group by p.process_instance_id group by p.process_instance_id
<include refid="order"/>
</select> </select>
</mapper> </mapper>
@@ -35,6 +35,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -74,16 +75,28 @@ public class ProcessAllService extends ServiceImpl<ProcessAllMapper, ProcessAll>
return this.getOne(wrapper); return this.getOne(wrapper);
} }
public IPage<ProcessAll> getTodoList(Page<ProcessAll> page, QueryWrapper<ProcessAll> queryWrapper) { public IPage<ProcessAll> getTodoList(Page<ProcessAll> page, QueryWrapper<ProcessAll> queryWrapper, HttpServletRequest req) {
return processAllMapper.getTodoList(page,queryWrapper); String column = req.getParameter("column");
String order = req.getParameter("order");
return processAllMapper.getTodoList(page,queryWrapper,column,order);
} }
public IPage<ProcessAll> getCompletedList(Page<ProcessAll> page, QueryWrapper<ProcessAll> queryWrapper) { public IPage<ProcessAll> getCompletedList(Page<ProcessAll> page, QueryWrapper<ProcessAll> queryWrapper, HttpServletRequest req) {
return processAllMapper.getCompletedList(page,queryWrapper); String column = req.getParameter("column");
String order = req.getParameter("order");
return processAllMapper.getCompletedList(page,queryWrapper,column,order);
} }
public IPage<ProcessAll> getSentList(Page<ProcessAll> page, QueryWrapper<ProcessAll> queryWrapper) { public IPage<ProcessAll> getSentList(Page<ProcessAll> page, QueryWrapper<ProcessAll> queryWrapper, HttpServletRequest req) {
return processAllMapper.getSentList(page,queryWrapper); String column = req.getParameter("column");
String order = req.getParameter("order");
return processAllMapper.getSentList(page,queryWrapper,column,order);
}
public IPage<ProcessAll> getAllList(Page<ProcessAll> page, QueryWrapper<ProcessAll> queryWrapper, HttpServletRequest req) {
String column = req.getParameter("column");
String order = req.getParameter("order");
return processAllMapper.getAllList(page,queryWrapper,column,order);
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void forcedWithdrawal(String processInstanceId) { public void forcedWithdrawal(String processInstanceId) {
@@ -125,10 +138,6 @@ public class ProcessAllService extends ServiceImpl<ProcessAllMapper, ProcessAll>
//todo 同步删除操作到统一待办 //todo 同步删除操作到统一待办
} }
public IPage<ProcessAll> getAllList(Page<ProcessAll> page, QueryWrapper<ProcessAll> queryWrapper) {
return processAllMapper.getAllList(page,queryWrapper);
}
public void delegateTask(DelegateTaskParam param) { public void delegateTask(DelegateTaskParam param) {
String taskId = param.getTaskId(); String taskId = param.getTaskId();
String userId = param.getUserId(); String userId = param.getUserId();
@@ -28,6 +28,8 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
/** /**
* @Description: 待办任务 * @Description: 待办任务
* @Author: jero-boot * @Author: jero-boot
@@ -53,7 +55,7 @@ public class LawsHomeBacklogTask {
@AutoLog(value = "待办任务-列表查询") @AutoLog(value = "待办任务-列表查询")
@ApiOperation(value="待办任务-列表查询", notes="快捷入口-列表查询") @ApiOperation(value="待办任务-列表查询", notes="快捷入口-列表查询")
@GetMapping(value = "/queryBacklogTaskList") @GetMapping(value = "/queryBacklogTaskList")
public Result<IPage<ProcessAll>> getTodoList(ProcessAll processAll) { public Result<IPage<ProcessAll>> getTodoList(ProcessAll processAll, HttpServletRequest req) {
ProcessAllService processAllService = applicationContext.getBean(ProcessAllService.class); ProcessAllService processAllService = applicationContext.getBean(ProcessAllService.class);
QueryWrapper<ProcessAll> queryWrapper = getProcessAllQueryWrapper(processAll); QueryWrapper<ProcessAll> queryWrapper = getProcessAllQueryWrapper(processAll);
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
@@ -63,7 +65,7 @@ public class LawsHomeBacklogTask {
queryWrapper.ne("pa.prc_status", ProcessStatusEnum.WITHDRAWN.getValue()); queryWrapper.ne("pa.prc_status", ProcessStatusEnum.WITHDRAWN.getValue());
queryWrapper.orderByDesc("pa.create_time"); queryWrapper.orderByDesc("pa.create_time");
Page<ProcessAll> page = new Page<>(1, 10); Page<ProcessAll> page = new Page<>(1, 10);
return Result.OK(processAllService.getTodoList(page, queryWrapper)); return Result.OK(processAllService.getTodoList(page, queryWrapper, req));
} }
private QueryWrapper<ProcessAll> getProcessAllQueryWrapper(ProcessAll processAll) { private QueryWrapper<ProcessAll> getProcessAllQueryWrapper(ProcessAll processAll) {