update 优化 实体类隔离

This commit is contained in:
疯狂的狮子Li 2025-01-11 19:21:01 +08:00
parent 54e4a8c023
commit 89c1cf63eb
11 changed files with 173 additions and 31 deletions

View File

@ -0,0 +1,71 @@
package org.dromara.common.core.domain.dto;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
* 办理任务请求对象
*
* @author may
*/
@Data
public class CompleteTaskDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 任务id
*/
private Long taskId;
/**
* 附件id
*/
private String fileId;
/**
* 抄送人员
*/
private List<FlowCopyDTO> flowCopyList;
/**
* 消息类型
*/
private List<String> messageType;
/**
* 办理意见
*/
private String message;
/**
* 消息通知
*/
private String notice;
/**
* 流程变量
*/
private Map<String, Object> variables;
/**
* 扩展变量(此处为逗号分隔的ossId)
*/
private String ext;
public Map<String, Object> getVariables() {
if (variables == null) {
return new HashMap<>(16);
}
variables.entrySet().removeIf(entry -> Objects.isNull(entry.getValue()));
return variables;
}
}

View File

@ -0,0 +1,30 @@
package org.dromara.common.core.domain.dto;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 抄送
*
* @author may
*/
@Data
public class FlowCopyDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 用户id
*/
private Long userId;
/**
* 用户名称
*/
private String userName;
}

View File

@ -0,0 +1,45 @@
package org.dromara.common.core.domain.dto;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
/**
* 启动流程对象
*
* @author may
*/
@Data
public class StartProcessDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 业务唯一值id
*/
private String businessId;
/**
* 流程定义编码
*/
private String flowCode;
/**
* 流程变量前端会提交一个元素{'entity': {业务详情数据对象}}
*/
private Map<String, Object> variables;
public Map<String, Object> getVariables() {
if (variables == null) {
return new HashMap<>(16);
}
variables.entrySet().removeIf(entry -> Objects.isNull(entry.getValue()));
return variables;
}
}

View File

@ -1,7 +1,7 @@
package org.dromara.common.core.service;
import org.dromara.common.core.domain.bo.CompleteTaskBo;
import org.dromara.common.core.domain.bo.StartProcessBo;
import org.dromara.common.core.domain.dto.CompleteTaskDTO;
import org.dromara.common.core.domain.dto.StartProcessDTO;
import java.util.List;
import java.util.Map;
@ -63,16 +63,16 @@ public interface WorkflowService {
/**
* 启动流程
*
* @param startProcessBo 参数
* @param startProcess 参数
* @return 结果
*/
Map<String, Object> startWorkFlow(StartProcessBo startProcessBo);
Map<String, Object> startWorkFlow(StartProcessDTO startProcess);
/**
* 办理任务
*
* @param completeTaskBo 参数
* @param completeTask 参数
* @return 结果
*/
boolean completeTask(CompleteTaskBo completeTaskBo);
boolean completeTask(CompleteTaskDTO completeTask);
}

View File

@ -2,8 +2,6 @@ package org.dromara.workflow.controller;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.domain.bo.CompleteTaskBo;
import org.dromara.common.core.domain.bo.StartProcessBo;
import org.dromara.common.core.domain.dto.UserDTO;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.idempotent.annotation.RepeatSubmit;

View File

@ -1,4 +1,4 @@
package org.dromara.common.core.domain.bo;
package org.dromara.workflow.domain.bo;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
@ -36,7 +36,7 @@ public class CompleteTaskBo implements Serializable {
/**
* 抄送人员
*/
private List<FlowCopy> flowCopyList;
private List<FlowCopyBo> flowCopyList;
/**
* 消息类型

View File

@ -1,4 +1,4 @@
package org.dromara.common.core.domain.bo;
package org.dromara.workflow.domain.bo;
import lombok.Data;
@ -12,7 +12,7 @@ import java.io.Serializable;
* @author may
*/
@Data
public class FlowCopy implements Serializable {
public class FlowCopyBo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;

View File

@ -1,4 +1,4 @@
package org.dromara.common.core.domain.bo;
package org.dromara.workflow.domain.bo;
import jakarta.validation.constraints.NotBlank;

View File

@ -1,7 +1,5 @@
package org.dromara.workflow.service;
import org.dromara.common.core.domain.bo.CompleteTaskBo;
import org.dromara.common.core.domain.bo.StartProcessBo;
import org.dromara.common.core.domain.dto.UserDTO;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;

View File

@ -11,8 +11,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.domain.bo.CompleteTaskBo;
import org.dromara.common.core.domain.bo.StartProcessBo;
import org.dromara.common.core.domain.dto.UserDTO;
import org.dromara.common.core.enums.BusinessStatusEnum;
import org.dromara.common.core.exception.ServiceException;
@ -39,7 +37,6 @@ import org.dromara.warm.flow.orm.mapper.FlowTaskMapper;
import org.dromara.workflow.common.enums.TaskAssigneeType;
import org.dromara.workflow.common.enums.TaskStatusEnum;
import org.dromara.workflow.domain.bo.*;
import org.dromara.common.core.domain.bo.FlowCopy;
import org.dromara.workflow.domain.vo.FlowHisTaskVo;
import org.dromara.workflow.domain.vo.FlowTaskVo;
import org.dromara.workflow.handler.FlowProcessEventHandler;
@ -139,7 +136,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
List<String> messageType = completeTaskBo.getMessageType();
String notice = completeTaskBo.getNotice();
// 获取抄送人
List<FlowCopy> flowCopyList = completeTaskBo.getFlowCopyList();
List<FlowCopyBo> flowCopyList = completeTaskBo.getFlowCopyList();
FlowTask flowTask = flowTaskMapper.selectById(taskId);
Instance ins = insService.getById(flowTask.getInstanceId());
// 获取流程定义信息
@ -175,7 +172,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
* @param task (当前任务)未办理的任务
* @param flowCopyList 抄送人
*/
private void setHandler(Instance instance, FlowTask task, List<FlowCopy> flowCopyList) {
private void setHandler(Instance instance, FlowTask task, List<FlowCopyBo> flowCopyList) {
if (ObjectUtil.isNull(instance)) {
return;
}
@ -208,7 +205,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
* @param task 任务信息
* @param flowCopyList 抄送人
*/
public void setCopy(FlowTask task, List<FlowCopy> flowCopyList) {
public void setCopy(FlowTask task, List<FlowCopyBo> flowCopyList) {
if (CollUtil.isEmpty(flowCopyList)) {
return;
}
@ -225,7 +222,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
FlowParams flowParams = FlowParams.build();
flowParams.skipType(SkipType.NONE.getKey());
flowParams.hisStatus(TaskStatusEnum.COPY.getStatus());
flowParams.message("【抄送给】" + StreamUtils.join(flowCopyList, FlowCopy::getUserName));
flowParams.message("【抄送给】" + StreamUtils.join(flowCopyList, FlowCopyBo::getUserName));
HisTask hisTask = hisTaskService.setSkipHisTask(task, flowNode, flowParams);
hisTask.setCreateTime(updateTime);
hisTask.setUpdateTime(updateTime);

View File

@ -1,12 +1,15 @@
package org.dromara.workflow.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.bo.CompleteTaskBo;
import org.dromara.common.core.domain.bo.StartProcessBo;
import org.dromara.common.core.domain.dto.CompleteTaskDTO;
import org.dromara.common.core.domain.dto.StartProcessDTO;
import org.dromara.common.core.service.WorkflowService;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.warm.flow.orm.entity.FlowInstance;
import org.dromara.workflow.domain.bo.CompleteTaskBo;
import org.dromara.workflow.domain.bo.StartProcessBo;
import org.dromara.workflow.service.IFlwDefinitionService;
import org.dromara.workflow.service.IFlwInstanceService;
import org.dromara.workflow.service.IFlwTaskService;
@ -26,7 +29,7 @@ public class WorkflowServiceImpl implements WorkflowService {
private final IFlwInstanceService flwInstanceService;
private final IFlwDefinitionService flwDefinitionService;
private final IFlwTaskService iFlwTaskService;
private final IFlwTaskService flwTaskService;
/**
* 删除流程实例
@ -97,20 +100,20 @@ public class WorkflowServiceImpl implements WorkflowService {
/**
* 启动流程
*
* @param startProcessBo 参数
* @param startProcess 参数
*/
@Override
public Map<String, Object> startWorkFlow(StartProcessBo startProcessBo) {
return iFlwTaskService.startWorkFlow(startProcessBo);
public Map<String, Object> startWorkFlow(StartProcessDTO startProcess) {
return flwTaskService.startWorkFlow(BeanUtil.toBean(startProcess, StartProcessBo.class));
}
/**
* 办理任务
*
* @param completeTaskBo 参数
* @param completeTask 参数
*/
@Override
public boolean completeTask(CompleteTaskBo completeTaskBo) {
return iFlwTaskService.completeTask(completeTaskBo);
public boolean completeTask(CompleteTaskDTO completeTask) {
return flwTaskService.completeTask(BeanUtil.toBean(completeTask, CompleteTaskBo.class));
}
}