package fx.custom.apl.example.scheduledtask;
import com.fxiaoke.functions.FunctionContext;
import com.fxiaoke.functions.Fx;
import com.fxiaoke.functions.client.DebugHelper;
import com.fxiaoke.functions.model.APIResult;
import com.fxiaoke.functions.template.IScheduledTaskAction;
import com.fxiaoke.functions.utils.Lists;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.fxiaoke.functions.Fx.log;
/**
* 计划任务基础模板
* <p>
* 计划任务需要从context.objectIds拿到数据id,然后自己查出相关数据再进行操作
*/
public class ScheduledTaskExample implements IScheduledTaskAction {
/**
* 计划任务函数的运行方法
*/
@Override
public void execute(FunctionContext context, Map<String, Object> args) {
List<String> ids = context.getObjectIds();
if (ids == null || ids.size() == 0) {
log.info("ids is empty!");
return;
}
APIResult result = Fx.object.findByIds("AccountObj", ids);
if (result.isError() || result.getData() == null) {
log.info(result.message());
return;
}
// result.getData()默认是Object,需要强制类型转换
List dataList = (List) result.getData();
if (dataList == null || dataList.size() == 0) {
log.info("dataList is empty!");
return;
}
//处理数据
for (Object data : dataList) {
//按逻辑处理
log.info("data: " + data);
}
}
public static void main(String[] args) {
//调试器
DebugHelper helper = new DebugHelper();
helper.init();
Map<String, Object> param = new HashMap<>();
//计划任务分两种场景
// 1是需要从context.objectIds拿到数据id,然后自己查出相关数据再进行操作
// 2是与参数无关,做自定义查询/自定义业务操作
FunctionContext context = helper.scheduledContext(Lists.newArrayList("111"));
new ScheduledTaskExample().execute(context, param);
}
}
Java接口说明
2024-10-22