update 优化 使用 record 简化实体类编码

This commit is contained in:
疯狂的狮子Li
2026-03-17 19:52:46 +08:00
parent 13aae27579
commit fcfa5eb767
30 changed files with 148 additions and 370 deletions

View File

@@ -1,31 +1,18 @@
package org.dromara.workflow.domain.bo;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import org.dromara.common.core.validate.AddGroup;
import java.io.Serial;
import java.io.Serializable;
/**
* 撤销流程请求对象。
*
* @param businessId 业务 ID
* @param message 撤销说明
* @author may
*/
@Data
public class FlowCancelBo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 任务ID
*/
public record FlowCancelBo(
@NotBlank(message = "业务ID不能为空", groups = AddGroup.class)
private String businessId;
/**
* 办理意见
*/
private String message;
String businessId,
String message
) {
}

View File

@@ -1,31 +1,18 @@
package org.dromara.workflow.domain.bo;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.dromara.common.core.validate.AddGroup;
import java.io.Serial;
import java.io.Serializable;
/**
* 作废流程请求对象。
*
* @param id 流程实例 ID
* @param comment 作废意见
* @author may
*/
@Data
public class FlowInvalidBo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 流程实例id
*/
public record FlowInvalidBo(
@NotNull(message = "流程实例id为空", groups = AddGroup.class)
private Long id;
/**
* 审批意见
*/
private String comment;
Long id,
String comment
) {
}

View File

@@ -1,31 +1,18 @@
package org.dromara.workflow.domain.bo;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.dromara.common.core.validate.AddGroup;
import java.io.Serial;
import java.io.Serializable;
/**
* 终止任务请求对象
*
* @param taskId 任务 ID
* @param comment 终止意见
* @author may
*/
@Data
public class FlowTerminationBo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 任务id
*/
public record FlowTerminationBo(
@NotNull(message = "任务id为空", groups = AddGroup.class)
private Long taskId;
/**
* 审批意见
*/
private String comment;
Long taskId,
String comment
) {
}

View File

@@ -1,39 +1,22 @@
package org.dromara.workflow.domain.bo;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.dromara.common.core.validate.AddGroup;
import java.io.Serial;
import java.io.Serializable;
/**
* 流程变量参数
*
* @param instanceId 流程实例 ID
* @param key 变量键
* @param value 变量值
* @author may
*/
@Data
public class FlowVariableBo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 流程实例id
*/
public record FlowVariableBo(
@NotNull(message = "流程实例id为空", groups = AddGroup.class)
private Long instanceId;
/**
* 流程变量key
*/
Long instanceId,
@NotNull(message = "流程变量key为空", groups = AddGroup.class)
private String key;
/**
* 流程变量value
*/
String key,
@NotNull(message = "流程变量value为空", groups = AddGroup.class)
private String value;
String value
) {
}

View File

@@ -92,9 +92,7 @@ public class FlwCommonServiceImpl implements IFlwCommonService {
try {
switch (messageTypeEnum) {
case SYSTEM_MESSAGE -> {
SseMessageDTO dto = new SseMessageDTO();
dto.setUserIds(userIds);
dto.setMessage(message);
SseMessageDTO dto = new SseMessageDTO(userIds, message);
SseMessageUtils.publishMessage(dto);
}
case EMAIL_MESSAGE -> MailUtils.sendText(emails, subject, message);

View File

@@ -311,7 +311,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
@Override
@Transactional(rollbackFor = Exception.class)
public boolean cancelProcessApply(FlowCancelBo bo) {
Instance instance = selectInstByBusinessId(bo.getBusinessId());
Instance instance = selectInstByBusinessId(bo.businessId());
if (instance == null) {
throw new ServiceException(ExceptionCons.NOT_FOUNT_INSTANCE);
}
@@ -319,7 +319,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
if (definition == null) {
throw new ServiceException(ExceptionCons.NOT_FOUNT_DEF);
}
String message = bo.getMessage();
String message = bo.message();
String userIdStr = LoginHelper.getUserIdStr();
BusinessStatusEnum.checkCancelStatus(instance.getFlowStatus());
FlowParams flowParams = FlowParams.build()
@@ -445,16 +445,16 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
@Override
@Transactional(rollbackFor = Exception.class)
public boolean updateVariable(FlowVariableBo bo) {
FlowInstance flowInstance = flowInstanceMapper.selectById(bo.getInstanceId());
FlowInstance flowInstance = flowInstanceMapper.selectById(bo.instanceId());
if (flowInstance == null) {
throw new ServiceException(ExceptionCons.NOT_FOUNT_INSTANCE);
}
Map<String, Object> variableMap = new HashMap<>(Optional.ofNullable(flowInstance.getVariableMap()).orElse(Collections.emptyMap()));
if (!variableMap.containsKey(bo.getKey())) {
log.error("变量不存在: {}", bo.getKey());
if (!variableMap.containsKey(bo.key())) {
log.error("变量不存在: {}", bo.key());
return false;
}
variableMap.put(bo.getKey(), bo.getValue());
variableMap.put(bo.key(), bo.value());
flowInstance.setVariable(FlowEngine.jsonConvert.objToStr(variableMap));
return flowInstanceMapper.updateById(flowInstance) > 0;
}
@@ -503,16 +503,16 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
@Override
@Transactional(rollbackFor = Exception.class)
public boolean processInvalid(FlowInvalidBo bo) {
Instance instance = insService.getById(bo.getId());
Instance instance = insService.getById(bo.id());
if (instance != null) {
BusinessStatusEnum.checkInvalidStatus(instance.getFlowStatus());
}
FlowParams flowParams = FlowParams.build()
.message(bo.getComment())
.message(bo.comment())
.flowStatus(BusinessStatusEnum.INVALID.getStatus())
.hisStatus(TaskStatusEnum.INVALID.getStatus())
.ignore(true);
taskService.terminationByInsId(bo.getId(), flowParams);
taskService.terminationByInsId(bo.id(), flowParams);
return true;
}
}

View File

@@ -133,9 +133,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
}
taskService.mergeVariable(flowInstance, variables);
insService.updateById(flowInstance);
StartProcessReturnDTO dto = new StartProcessReturnDTO();
dto.setProcessInstanceId(taskList.get(0).getInstanceId());
dto.setTaskId(taskList.get(0).getId());
StartProcessReturnDTO dto = new StartProcessReturnDTO(taskList.get(0).getInstanceId(), taskList.get(0).getId());
// 保存流程实例业务信息
this.buildFlowInstanceBizExt(flowInstance, bizExt);
return dto;
@@ -166,10 +164,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
if (taskList.size() > 1) {
throw new ServiceException("请检查流程第一个环节是否为申请人!");
}
StartProcessReturnDTO dto = new StartProcessReturnDTO();
dto.setProcessInstanceId(instance.getId());
dto.setTaskId(taskList.get(0).getId());
return dto;
return new StartProcessReturnDTO(instance.getId(), taskList.get(0).getId());
}
/**
@@ -570,7 +565,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
@Override
@Transactional(rollbackFor = Exception.class)
public boolean terminationTask(FlowTerminationBo bo) {
Long taskId = bo.getTaskId();
Long taskId = bo.taskId();
Task task = taskService.getById(taskId);
if (task == null) {
throw new ServiceException("任务不存在!");
@@ -580,7 +575,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
BusinessStatusEnum.checkInvalidStatus(instance.getFlowStatus());
}
FlowParams flowParams = FlowParams.build()
.message(bo.getComment())
.message(bo.comment())
.flowStatus(BusinessStatusEnum.TERMINATION.getStatus())
.hisStatus(TaskStatusEnum.TERMINATION.getStatus());
taskService.termination(taskId, flowParams);

View File

@@ -166,7 +166,7 @@ public class WorkflowServiceImpl implements WorkflowService {
StartProcessReturnDTO result = flwTaskService.startWorkFlow(processBo);
CompleteTaskBo taskBo = new CompleteTaskBo();
taskBo.setTaskId(result.getTaskId());
taskBo.setTaskId(result.taskId());
taskBo.setMessageType(Collections.singletonList(MessageTypeEnum.SYSTEM_MESSAGE.getCode()));
taskBo.setVariables(startProcess.getVariables());
taskBo.setHandler(startProcess.getHandler());