!30 feat(xispeak): 撤回流程时同步删除抄送记录

* feat(xispeak): 撤回流程时同步删除抄送记录
* feat(tasktask): 周期性任务改为按年月日匹配当天需发起的任务
This commit is contained in:
new_new_new
2026-06-02 09:04:38 +00:00
parent 2f804da58d
commit 198a657f17
3 changed files with 15 additions and 3 deletions
@@ -12,7 +12,7 @@ flow-biz:
business-key: "business_id"
dept-worker-key: "subApproveUser"
xi-speak-fb-flowcode: "process_1778315114392"
form-url: "bg/xispeak/components/BgXiSpeakBPMForm"
form-url: "bg/xispeak/components/BgXiSpeakBPMForm?showFeedbackInfo=1&showJiJianFields=1"
tem-impl-worker-key: "tem_impl_worker"
tem-impl-leader-key: "tem_impl_leader"
tem-bg-leader-key: "tem_bg_leader"
@@ -3,6 +3,7 @@ package org.jeecg.modules.bg.xispeak.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.flowable.engine.HistoryService;
import org.flowable.engine.RuntimeService;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.util.oConvertUtils;
@@ -10,6 +11,8 @@ import org.jeecg.common.system.vo.SelectTreeModel;
import org.jeecg.modules.bg.xispeak.entity.BgXiSpeak;
import org.jeecg.modules.bg.xispeak.entity.DeptApproveDetail;
import org.jeecg.modules.bg.xispeak.entity.DeptApproveDetailMap;
import org.jeecg.modules.extbpm.process.entity.ExtActTaskCc;
import org.jeecg.modules.extbpm.process.service.IExtActTaskCcService;
import org.jeecg.modules.bg.xispeak.mapper.BgXiSpeakMapper;
import org.jeecg.modules.bg.xispeak.service.IBgXiSpeakService;
import org.jeecg.modules.taskapprovalopinion.entity.TaskApprovalOpinion;
@@ -40,7 +43,9 @@ public class BgXiSpeakServiceImpl extends ServiceImpl<BgXiSpeakMapper, BgXiSpeak
private final TaskTaskServiceImpl taskTaskServiceImpl;
private final RuntimeService runtimeService;
private final HistoryService historyService;
private final ITaskApprovalOpinionService taskApprovalOpinionService;
private final IExtActTaskCcService extActTaskCcService;
@Override
public void addBgXiSpeak(BgXiSpeak bgXiSpeak) {
@@ -273,9 +278,15 @@ public class BgXiSpeakServiceImpl extends ServiceImpl<BgXiSpeakMapper, BgXiSpeak
runtimeService.deleteProcessInstance(procId, delReason);
log.info("成功中止运行中的流程实例: {}", procId);
}
taskApprovalOpinionService.remove(
new LambdaQueryWrapper<TaskApprovalOpinion>()
.eq(TaskApprovalOpinion::getProcessInstId, procId));
// 删除抄送记录
extActTaskCcService.remove(
new LambdaQueryWrapper<ExtActTaskCc>()
.eq(ExtActTaskCc::getProcInstId, procId));
}
// 4. 重新创建一个干净的 Wrapper,绝不能带 for update
@@ -45,14 +45,15 @@ public class TaskJob implements Job {
long startTime = System.currentTimeMillis();
LocalDateTime startDateTime = LocalDateTime.now();
// 1. 查询建议:只查询必要的字段,避免 select *
// 1. 查询建议:只查询必要的字段,避免 select *
List<TaskTask> executeTaskTaskList = taskTaskServiceImpl
.lambdaQuery()
.select(TaskTask::getId, TaskTask::getFlowCode, TaskTask::getJsonData,
TaskTask::getFormUrl, TaskTask::getCreateBy)
.eq(TaskTask::getBpmStatus, 1)
.eq(TaskTask::getTriggerType, FlowConstants.Strategy.RECURRING_ONLY)
.lt(TaskTask::getStartTime, startDateTime)
.ge(TaskTask::getStartTime, startDateTime.toLocalDate().atStartOfDay())
.lt(TaskTask::getStartTime, startDateTime.toLocalDate().plusDays(1).atStartOfDay())
.list();
// 2. 集合判空实践