mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-03-23 13:54:33 +08:00
update 优化 使用 record 简化实体类编码
This commit is contained in:
@@ -1,30 +1,19 @@
|
||||
package org.dromara.job.entity;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
public class BillDTO {
|
||||
|
||||
/**
|
||||
* 账单ID
|
||||
*/
|
||||
private Long billId;
|
||||
|
||||
/**
|
||||
* 账单渠道
|
||||
*/
|
||||
private String billChannel;
|
||||
|
||||
/**
|
||||
* 账单日期
|
||||
*/
|
||||
private String billDate;
|
||||
|
||||
/**
|
||||
* 账单金额
|
||||
*/
|
||||
private BigDecimal billAmount;
|
||||
|
||||
/**
|
||||
* 账单数据传输对象。
|
||||
*
|
||||
* @param billId 账单 ID
|
||||
* @param billChannel 账单渠道
|
||||
* @param billDate 账单日期
|
||||
* @param billAmount 账单金额
|
||||
*/
|
||||
public record BillDTO(
|
||||
Long billId,
|
||||
String billChannel,
|
||||
String billDate,
|
||||
BigDecimal billAmount
|
||||
) {
|
||||
}
|
||||
|
||||
@@ -23,16 +23,12 @@ import java.math.BigDecimal;
|
||||
public class AlipayBillTask {
|
||||
|
||||
public ExecuteResult jobExecute(JobArgs jobArgs) throws InterruptedException {
|
||||
BillDTO billDTO = new BillDTO();
|
||||
billDTO.setBillId(23456789L);
|
||||
billDTO.setBillChannel("alipay");
|
||||
// 设置清算日期
|
||||
String settlementDate = (String) jobArgs.getWfContext().get("settlementDate");
|
||||
if (StrUtil.equals(settlementDate, "sysdate")) {
|
||||
settlementDate = DateUtil.today();
|
||||
}
|
||||
billDTO.setBillDate(settlementDate);
|
||||
billDTO.setBillAmount(new BigDecimal("2345.67"));
|
||||
BillDTO billDTO = new BillDTO(23456789L, "alipay", settlementDate, new BigDecimal("2345.67"));
|
||||
// 把billDTO对象放入上下文进行传递
|
||||
jobArgs.appendContext("alipay", JsonUtils.toJsonString(billDTO));
|
||||
SnailJobLog.REMOTE.info("上下文: {}", jobArgs.getWfContext());
|
||||
|
||||
@@ -27,14 +27,14 @@ public class SummaryBillTask {
|
||||
String wechat = (String) jobArgs.getWfContext("wechat");
|
||||
if (StrUtil.isNotBlank(wechat)) {
|
||||
BillDTO wechatBillDTO = JsonUtils.parseObject(wechat, BillDTO.class);
|
||||
wechatAmount = wechatBillDTO.getBillAmount();
|
||||
wechatAmount = wechatBillDTO.billAmount();
|
||||
}
|
||||
// 获得支付宝账单
|
||||
BigDecimal alipayAmount = BigDecimal.valueOf(0);
|
||||
String alipay = (String) jobArgs.getWfContext("alipay");
|
||||
if (StrUtil.isNotBlank(alipay)) {
|
||||
BillDTO alipayBillDTO = JsonUtils.parseObject(alipay, BillDTO.class);
|
||||
alipayAmount = alipayBillDTO.getBillAmount();
|
||||
alipayAmount = alipayBillDTO.billAmount();
|
||||
}
|
||||
// 汇总账单
|
||||
BigDecimal totalAmount = wechatAmount.add(alipayAmount);
|
||||
|
||||
@@ -23,17 +23,13 @@ import java.math.BigDecimal;
|
||||
public class WechatBillTask {
|
||||
|
||||
public ExecuteResult jobExecute(JobArgs jobArgs) throws InterruptedException {
|
||||
BillDTO billDTO = new BillDTO();
|
||||
billDTO.setBillId(123456789L);
|
||||
billDTO.setBillChannel("wechat");
|
||||
// 从上下文中获得清算日期并设置,如果上下文中清算日期
|
||||
// 是sysdate设置为当前日期;否则取管理页面设置的值
|
||||
String settlementDate = (String) jobArgs.getWfContext().get("settlementDate");
|
||||
if (StrUtil.equals(settlementDate, "sysdate")) {
|
||||
settlementDate = DateUtil.today();
|
||||
}
|
||||
billDTO.setBillDate(settlementDate);
|
||||
billDTO.setBillAmount(new BigDecimal("1234.56"));
|
||||
BillDTO billDTO = new BillDTO(123456789L, "wechat", settlementDate, new BigDecimal("1234.56"));
|
||||
// 把billDTO对象放入上下文进行传递
|
||||
jobArgs.appendContext("wechat", JsonUtils.toJsonString(billDTO));
|
||||
SnailJobLog.REMOTE.info("上下文: {}", jobArgs.getWfContext());
|
||||
|
||||
@@ -13,7 +13,6 @@ import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.PageResult;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.system.domain.bo.SysOssBo;
|
||||
import org.dromara.system.domain.vo.SysOssUploadVo;
|
||||
import org.dromara.system.domain.vo.SysOssVo;
|
||||
import org.dromara.system.service.ISysOssService;
|
||||
import org.springframework.http.MediaType;
|
||||
@@ -76,10 +75,7 @@ public class SysOssController extends BaseController {
|
||||
@PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
||||
public R<SysOssUploadVo> upload(@RequestPart("file") MultipartFile file) {
|
||||
SysOssVo oss = ossService.upload(file);
|
||||
SysOssUploadVo uploadVo = new SysOssUploadVo();
|
||||
uploadVo.setUrl(oss.getUrl());
|
||||
uploadVo.setFileName(oss.getOriginalName());
|
||||
uploadVo.setOssId(oss.getOssId().toString());
|
||||
SysOssUploadVo uploadVo = new SysOssUploadVo(oss.getUrl(), oss.getOriginalName(), oss.getOssId().toString());
|
||||
return R.ok(uploadVo);
|
||||
}
|
||||
|
||||
@@ -110,4 +106,13 @@ public class SysOssController extends BaseController {
|
||||
return toAjax(ossService.deleteWithValidByIds(List.of(ossIds), true));
|
||||
}
|
||||
|
||||
/**
|
||||
* OSS 上传响应对象。
|
||||
*
|
||||
* @param url 文件访问地址
|
||||
* @param fileName 原始文件名
|
||||
* @param ossId OSS 对象 ID
|
||||
*/
|
||||
public record SysOssUploadVo(String url, String fileName, String ossId) {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
package org.dromara.system.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 上传对象信息
|
||||
*
|
||||
* @author Michelle.Chung
|
||||
*/
|
||||
@Data
|
||||
public class SysOssUploadVo {
|
||||
|
||||
/**
|
||||
* URL地址
|
||||
*/
|
||||
private String url;
|
||||
|
||||
/**
|
||||
* 文件名
|
||||
*/
|
||||
private String fileName;
|
||||
|
||||
/**
|
||||
* 对象存储主键
|
||||
*/
|
||||
private String ossId;
|
||||
|
||||
}
|
||||
@@ -258,9 +258,9 @@ public class SysOssServiceImpl implements ISysOssService, OssService {
|
||||
@NotNull
|
||||
private SysOssVo buildResultEntity(String originalfileName, String suffix, String configKey, UploadResult uploadResult, SysOssExt ext1) {
|
||||
SysOss oss = new SysOss();
|
||||
oss.setUrl(uploadResult.getUrl());
|
||||
oss.setUrl(uploadResult.url());
|
||||
oss.setFileSuffix(suffix);
|
||||
oss.setFileName(uploadResult.getFilename());
|
||||
oss.setFileName(uploadResult.filename());
|
||||
oss.setOriginalName(originalfileName);
|
||||
oss.setService(configKey);
|
||||
oss.setExt1(JsonUtils.toJsonString(ext1));
|
||||
|
||||
@@ -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
|
||||
) {
|
||||
}
|
||||
|
||||
@@ -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
|
||||
) {
|
||||
}
|
||||
|
||||
@@ -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
|
||||
) {
|
||||
}
|
||||
|
||||
@@ -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
|
||||
) {
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user