| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- package jnpf.flowable.service.impl;
- import cn.hutool.core.util.ObjectUtil;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.github.yulichang.toolkit.JoinWrappers;
- import com.github.yulichang.wrapper.MPJLambdaWrapper;
- import jnpf.base.service.SuperServiceImpl;
- import jnpf.flowable.entity.CirculateEntity;
- import jnpf.flowable.entity.TaskEntity;
- import jnpf.flowable.entity.TemplateEntity;
- import jnpf.flowable.enums.TaskStatusEnum;
- import jnpf.flowable.mapper.CirculateMapper;
- import jnpf.flowable.model.operator.OperatorVo;
- import jnpf.flowable.model.task.TaskPagination;
- import jnpf.flowable.service.CirculateService;
- import jnpf.util.StringUtil;
- import jnpf.util.UserProvider;
- import org.springframework.stereotype.Service;
- import java.util.Arrays;
- import java.util.Date;
- import java.util.List;
- import java.util.stream.Collectors;
- /**
- * @author :JNPF开发平台组
- * @version: V3.1.0
- * @copyright 引迈信息技术有限公司
- * @date :2024/4/29 下午5:21
- */
- @Service
- public class CirculateServiceImpl extends SuperServiceImpl<CirculateMapper, CirculateEntity> implements CirculateService {
- @Override
- public List<CirculateEntity> getList(String taskId) {
- QueryWrapper<CirculateEntity> queryWrapper = new QueryWrapper<>();
- queryWrapper.lambda().eq(CirculateEntity::getTaskId, taskId);
- return this.list(queryWrapper);
- }
- @Override
- public List<OperatorVo> getList(TaskPagination pagination) {
- String userId = StringUtil.isNotEmpty(pagination.getUserId()) ? pagination.getUserId() : UserProvider.getLoginUserId();
- MPJLambdaWrapper<CirculateEntity> wrapper = JoinWrappers.lambda(CirculateEntity.class)
- .selectAll(TaskEntity.class)
- .leftJoin(TaskEntity.class, TaskEntity::getId, CirculateEntity::getTaskId)
- .leftJoin(TemplateEntity.class, TemplateEntity::getId, TaskEntity::getTemplateId)
- .selectAs(TemplateEntity::getSystemId, OperatorVo::getSystemName)
- .selectAs(CirculateEntity::getNodeName, OperatorVo::getNodeName)
- .selectAs(CirculateEntity::getNodeCode, OperatorVo::getNodeCode)
- .selectAs(CirculateEntity::getId, OperatorVo::getId)
- .selectAs(TaskEntity::getId, OperatorVo::getTaskId)
- .selectAs(TaskEntity::getUrgent, OperatorVo::getFlowUrgent)
- .selectAs(CirculateEntity::getCreatorTime, OperatorVo::getCreatorTime)
- .ne(TaskEntity::getStatus, TaskStatusEnum.CANCEL.getCode())
- .eq(CirculateEntity::getUserId, userId);
- //关键字(流程名称、流程编码)
- String keyWord = pagination.getKeyword();
- if (ObjectUtil.isNotEmpty(keyWord)) {
- wrapper.and(t -> t.like(TaskEntity::getEnCode, keyWord).or().like(TaskEntity::getFullName, keyWord));
- }
- //日期范围(近7天、近1月、近3月、自定义)
- if (ObjectUtil.isNotEmpty(pagination.getStartTime()) && ObjectUtil.isNotEmpty(pagination.getEndTime())) {
- wrapper.between(TaskEntity::getStartTime, new Date(pagination.getStartTime()), new Date(pagination.getEndTime()));
- }
- //所属流程
- String templateId = pagination.getTemplateId();
- if (ObjectUtil.isNotEmpty(templateId)) {
- wrapper.eq(TaskEntity::getTemplateId, templateId);
- }
- //所属分类
- String category = pagination.getFlowCategory();
- if (ObjectUtil.isNotEmpty(category)) {
- List<String> categoryList = Arrays.stream(category.split(",")).collect(Collectors.toList());
- wrapper.in(TaskEntity::getFlowCategory, categoryList);
- }
- //是否已读
- Integer status = pagination.getStatus();
- if (ObjectUtil.isNotEmpty(status)) {
- wrapper.in(CirculateEntity::getCirculateRead, status);
- }
- //发起人员
- String creatorUserId = pagination.getCreatorUserId();
- if (ObjectUtil.isNotEmpty(creatorUserId)) {
- wrapper.in(TaskEntity::getCreatorUserId, creatorUserId);
- }
- //紧急程度
- Integer flowUrgent = pagination.getFlowUrgent();
- if (ObjectUtil.isNotEmpty(flowUrgent)) {
- wrapper.in(TaskEntity::getUrgent, flowUrgent);
- }
- //应用主建
- String systemId = pagination.getSystemId();
- if (ObjectUtil.isNotEmpty(systemId)) {
- wrapper.eq(TemplateEntity::getSystemId, systemId);
- }
- wrapper.orderByDesc(CirculateEntity::getCreatorTime);
- Page<OperatorVo> page = new Page<>(pagination.getCurrentPage(), pagination.getPageSize());
- Page<OperatorVo> data = this.selectJoinListPage(page, OperatorVo.class, wrapper);
- return pagination.setData(data.getRecords(), page.getTotal());
- }
- }
|