From 14307afdae4c0a4fb5856e4210c7641d5b174370 Mon Sep 17 00:00:00 2001 From: wsm <2746563060@侵权。> Date: Mon, 20 Apr 2026 16:23:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=90=8E=E7=AB=AF=E5=AF=B9js?= =?UTF-8?q?on=E6=95=B0=E6=8D=AE=E7=9A=84=E6=8E=A5=E6=94=B6=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=EF=BC=8C=E4=BD=BF=E7=94=A8JacksonTypeHandler=E6=9D=A5?= =?UTF-8?q?=E5=81=9A=E8=AF=BB=E5=8F=96=E5=86=99=E5=85=A5=E6=97=B6=E7=9A=84?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/TaskTaskController.java | 7 +-- .../tasktask/dto/RecurringTaskDTO.java | 11 ++++ .../modules/tasktask/entity/TaskTask.java | 36 +++---------- .../tasktask/service/ITaskTaskService.java | 2 +- .../service/impl/TaskTaskServiceImpl.java | 51 ++++++++++--------- 5 files changed, 49 insertions(+), 58 deletions(-) create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/dto/RecurringTaskDTO.java diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/controller/TaskTaskController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/controller/TaskTaskController.java index 8725a5c..c132ae5 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/controller/TaskTaskController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/controller/TaskTaskController.java @@ -19,6 +19,7 @@ import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.extbpm.process.service.impl.BpmBaseExtApiImpl; import org.jeecg.modules.tasktask.constant.FlowConstants; +import org.jeecg.modules.tasktask.dto.RecurringTaskDTO; import org.jeecg.modules.tasktask.entity.TaskTask; import org.jeecg.modules.tasktask.mapper.TaskTaskMapper; import org.jeecg.modules.tasktask.service.ITaskTaskService; @@ -108,14 +109,14 @@ public class TaskTaskController extends JeecgController addRecurringTask(@RequestBody TaskTask taskTask, Integer intervalType, Integer startCount) { + public Result addRecurringTask(@RequestBody RecurringTaskDTO recurringTaskDTO) throws Exception { // 获取用户信息 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String username = sysUser.getUsername(); @@ -126,7 +127,7 @@ public class TaskTaskController extends JeecgController jsonData; - public byte[] getJsonData(){ - if(jsonDataString==null){ - return null; - } - try { - return jsonDataString.getBytes("UTF-8"); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - return null; - } - - public String getJsonDataString(){ - if(jsonData==null || jsonData.length==0){ - return ""; - } - try { - return new String(jsonData,"UTF-8"); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - return ""; - } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/service/ITaskTaskService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/service/ITaskTaskService.java index 01b437f..548f294 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/service/ITaskTaskService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/service/ITaskTaskService.java @@ -13,5 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService; public interface ITaskTaskService extends IService { boolean singleFlowStart(TaskTask taskTask,String userName) throws Exception; boolean multiFlowStart(TaskTask taskTask,String userName,Integer intervalType, Integer startCount) throws Exception; - Result handleFlowStart(TaskTask taskTask, String username, Integer intervalType, Integer startCount); + Result handleFlowStart(TaskTask taskTask, String username, Integer intervalType, Integer startCount)throws Exception; } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/service/impl/TaskTaskServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/service/impl/TaskTaskServiceImpl.java index f5bdfd9..18e02da 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/service/impl/TaskTaskServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/service/impl/TaskTaskServiceImpl.java @@ -33,15 +33,6 @@ public class TaskTaskServiceImpl extends ServiceImpl i private BpmBaseExtApiImpl bpmBaseExtApiImpl; @Transactional(rollbackFor = Exception.class) public boolean singleFlowStart(TaskTask taskTask, String userName) throws Exception { - if (StringUtils.isBlank(taskTask.getFlowCode())) { - throw new IllegalArgumentException("flowCode不能为空"); - } - if (StringUtils.isBlank(taskTask.getBusinessId())) { - throw new IllegalArgumentException("businessId不能为空"); - } - if (StringUtils.isBlank(taskTask.getFormUrl())) { - throw new IllegalArgumentException("formUrl不能为空"); - } String jsonString = Optional.ofNullable(taskTask.getJsonData()) .map(JSON::toJSONString) // 使用 Fastjson 或 Jackson .orElse("{}"); @@ -73,9 +64,9 @@ public class TaskTaskServiceImpl extends ServiceImpl i } return this.saveBatch(temTaskList); } - public Result handleFlowStart(TaskTask taskTask, String username, Integer intervalType, Integer startCount) throws Exception { + public Result handleFlowStart(TaskTask taskTask, String username, Integer intervalType, Integer startCount) throws Exception{ // 1. 显式校验:代替 Assert - Result checkResult = validateBusinessParams(taskTask, startCount); + Result checkResult = validateBusinessParams(taskTask); if (!checkResult.isSuccess()) { return checkResult; // 校验不通过直接返回错误 } @@ -89,20 +80,6 @@ public class TaskTaskServiceImpl extends ServiceImpl i } if (FlowConstants.Strategy.RECURRING_ONLY.equals(triggerType)) { - boolean success = multiFlowStart(taskTask, username, intervalType, startCount); - return success ? Result.ok("周期性流程添加成功") : Result.error("周期性流程添加失败"); - } - - // 3. 保底处理 - return Result.error("未知的触发类型: " + triggerType); - } - private Result validateBusinessParams(TaskTask taskTask, Integer startCount) { - if (taskTask.getTriggerType() == null) { - return Result.error("触发类型不能为空"); - } - - // 如果是周期任务,校验次数和开始时间 - if (FlowConstants.Strategy.RECURRING_ONLY.equals(taskTask.getTriggerType())) { if (startCount == null || startCount <= 0) { return Result.error("周期任务生成数量必须大于0"); } @@ -112,7 +89,31 @@ public class TaskTaskServiceImpl extends ServiceImpl i if (taskTask.getStartTime() == null) { return Result.error("周期性流程开始时间不能为空"); } + boolean success = multiFlowStart(taskTask, username, intervalType, startCount); + return success ? Result.ok("周期性流程添加成功") : Result.error("周期性流程添加失败"); } + + // 3. 保底处理 + return Result.error("未知的触发类型: " + triggerType); + } + private Result validateBusinessParams(TaskTask taskTask) { + if(taskTask == null){ + return Result.error("Task对象不能未空"); + } + if (taskTask.getTriggerType() == null) { + return Result.error("触发类型不能为空"); + } + //立即督办或周期性督办都需要该校验流程 + if (StringUtils.isBlank(taskTask.getFlowCode())) { + return Result.error("flowCode不能为空"); + } + if (StringUtils.isBlank(taskTask.getBusinessId())) { + return Result.error("businessId不能为空"); + } + if (StringUtils.isBlank(taskTask.getFormUrl())) { + return Result.error("formUrl不能为空"); + } + return Result.ok(); } }