!67 czh-20260702-新增updateTitleAndDeadline接口同步更新中间表与流程变量

Merge pull request !67 from 陈志浩/fix/process-20260702
This commit is contained in:
陈志浩
2026-07-02 08:03:14 +00:00
committed by Gitee
3 changed files with 91 additions and 0 deletions
@@ -240,6 +240,48 @@ public class TaskTaskController extends JeecgController<TaskTask, ITaskTaskServi
return Result.error("删除流程失败"); return Result.error("删除流程失败");
} }
/**
* 删除未发起的待处理任务(无 processInstId 的周期性任务记录)
*/
@AutoLog(value = "删除未发起的待处理任务")
@Operation(summary = "删除未发起的待处理任务")
@RequiresPermissions("tasktask:task_task:delete")
@PostMapping(value = "/deletePendingTask")
public Result<String> deletePendingTask(@RequestParam("taskId") String taskId) {
if (oConvertUtils.isEmpty(taskId)) {
return Result.error("任务ID不能为空");
}
if (taskTaskService.deletePendingTask(taskId)) {
return Result.OK("删除待处理任务成功");
}
return Result.error("删除待处理任务失败");
}
/**
* 修改流程标题和截止时间(同时更新 task_task 表和 Flowable 流程变量)
*/
@AutoLog(value = "修改流程标题和截止时间")
@Operation(summary = "修改流程标题和截止时间")
@RequiresPermissions("tasktask:task_task:edit")
@PostMapping(value = "/updateTitleAndDeadline")
public Result<String> updateTitleAndDeadline(@RequestParam("taskId") String taskId,
@RequestParam("title") String title,
@RequestParam("requireFinishDate") String requireFinishDate) {
if (oConvertUtils.isEmpty(taskId)) {
return Result.error("任务ID不能为空");
}
if (oConvertUtils.isEmpty(title)) {
return Result.error("标题不能为空");
}
if (oConvertUtils.isEmpty(requireFinishDate)) {
return Result.error("要求完成日期不能为空");
}
if (taskTaskService.updateTitleAndDeadline(taskId, title, requireFinishDate)) {
return Result.OK("修改成功");
}
return Result.error("修改失败");
}
/** /**
* 导出excel * 导出excel
* *
@@ -19,4 +19,6 @@ public interface ITaskTaskService extends IService<TaskTask> {
IPage<TaskTask> getTaskTaskPageByBusinessId(Page<TaskTask> page, String businessId) throws Exception; IPage<TaskTask> getTaskTaskPageByBusinessId(Page<TaskTask> page, String businessId) throws Exception;
boolean updateDeptHandlerName(String processInstanceId, String deptHandlerName); boolean updateDeptHandlerName(String processInstanceId, String deptHandlerName);
boolean deleteSingleProcess(String processInstId); boolean deleteSingleProcess(String processInstId);
boolean deletePendingTask(String taskId);
boolean updateTitleAndDeadline(String taskId, String title, String requireFinishDate);
} }
@@ -215,4 +215,51 @@ public class TaskTaskServiceImpl extends ServiceImpl<TaskTaskMapper, TaskTask> i
.eq(TaskTask::getProcessInstId, processInstId); .eq(TaskTask::getProcessInstId, processInstId);
return this.remove(deleteWrapper); return this.remove(deleteWrapper);
} }
@Override
@Transactional(rollbackFor = Exception.class)
public boolean deletePendingTask(String taskId) {
TaskTask taskTask = this.getById(taskId);
if (taskTask == null) {
log.warn("【督办-删除待发起任务】未找到tasktask记录, taskId: {}", taskId);
return false;
}
if (org.apache.commons.lang.StringUtils.isNotBlank(taskTask.getProcessInstId())) {
log.warn("【督办-删除待发起任务】任务已有流程实例,拒绝通过本接口删除, taskId: {}, processInstId: {}", taskId, taskTask.getProcessInstId());
return false;
}
this.removeById(taskId);
log.info("【督办-删除待发起任务】已逻辑删除待发起的任务记录, taskId: {}", taskId);
return true;
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean updateTitleAndDeadline(String taskId, String title, String requireFinishDate) {
TaskTask taskTask = this.getById(taskId);
if (taskTask == null) {
log.warn("【督办-修改标题和截止时间】未找到tasktask记录, taskId: {}", taskId);
return false;
}
taskTask.setTitle(title);
taskTask.setRequireFinishDate(java.sql.Date.valueOf(requireFinishDate));
this.updateById(taskTask);
log.info("【督办-修改标题和截止时间】已更新tasktask表, taskId: {}, title: {}, requireFinishDate: {}", taskId, title, requireFinishDate);
if (StringUtils.isNotBlank(taskTask.getProcessInstId())) {
try {
runtimeService.setVariable(taskTask.getProcessInstId(), "title", title);
runtimeService.setVariable(taskTask.getProcessInstId(), "deadline", requireFinishDate);
String bizTitle = (String) runtimeService.getVariable(taskTask.getProcessInstId(), "bpm_biz_title");
if (StringUtils.isNotBlank(bizTitle)) {
String suffix = bizTitle.replaceAll("^.*?(【)", "");
runtimeService.setVariable(taskTask.getProcessInstId(), "bpm_biz_title", title + suffix);
}
log.info("【督办-修改标题和截止时间】已更新流程变量, processInstId: {}", taskTask.getProcessInstId());
} catch (Exception e) {
log.error("【督办-修改标题和截止时间】更新流程变量失败, processInstId: {}", taskTask.getProcessInstId(), e);
}
}
return true;
}
} }