Files
skills/mis-spec/references/worksheet.md
T
V-LiuShuang 7ec3446da3 add
2026-09-10 13:51:11 +08:00

51 lines
1.3 KiB
Markdown

# 使用场景
凡是**异步且对延迟时间不敏感的任务**一律使用工单,如果不确定则向用户询问是否要使用工单。
## 前置条件
请先在编写代码的模块,检查是否存在`WorkSheetHandler.java`或者`SimpleWorkSheet.java`类,若存在则直接使用工单,不存在则不使用工单。
## 使用案例
调用方使用`tryOrderCreate`方法,遇到异常将自动处理重试逻辑。
```java
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@Slf4j
@Component
@RequiredArgsConstructor
public class WorksheetExample implements SimpleWorkSheet {
private final WorkSheetHandler workSheetHandler;
public void tryOrderCreate(String taskId, ExampleDTO param) {
try {
createOrder(param);
} catch (Exception e) {
log.error("do_something_err", e);
workSheetHandler.putObjectParam(getWorkCode(), taskId, param);
}
}
private void createOrder(ExampleDTO param) {
// do something
}
@Override
public String getWorkCode() {
return "ORDER_CREATE";
}
@Override
public Object execute(WorkSheetEntity workSheet) {
createOrder(workSheet.readBeanParam(ExampleDTO.class));
return null;
}
}
```