diff --git a/src/main/java/com/budwk/app/zhgh/democratic/proposal/listenter/ProposalCommitteeFilingRevokeEventListener.java b/src/main/java/com/budwk/app/zhgh/democratic/proposal/listenter/ProposalCommitteeFilingRevokeEventListener.java new file mode 100644 index 0000000..e659426 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/democratic/proposal/listenter/ProposalCommitteeFilingRevokeEventListener.java @@ -0,0 +1,49 @@ +package com.budwk.app.zhgh.democratic.proposal.listenter; + +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.budwk.app.flow.engine.event.ProcessEvent; +import com.budwk.app.flow.engine.event.ProcessEventListener; +import com.budwk.app.flow.entity.ProcessInstance; +import com.budwk.app.flow.entity.ProcessTask; +import com.budwk.app.flow.enums.ProcessEventTypeEnum; +import com.budwk.app.flow.service.ProcessInstanceService; +import com.budwk.app.zhgh.democratic.proposal.models.ProposalMerge; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.lang.Lang; + +/** + * @version 1.0 + * @Author FKY + * @name:ProposalCommitteeFilingRevokeEventListener + * @Date 2025/12/22 17:43 + * @注释 提案立案审核撤回监听器 + */ +public class ProposalCommitteeFilingRevokeEventListener implements ProcessEventListener { + + @Inject + private Dao dao; + @Inject + private ProcessInstanceService processInstanceService; + + @Override + public void onEvent(ProcessEvent event) { + if (event.getEventType() == ProcessEventTypeEnum.PROCESS_TASK_REVOKE) { + Long taskId = event.getSourceId(); + ProcessTask task = dao.fetch(ProcessTask.class, taskId); + ProcessInstance processInstance = processInstanceService.getById(task.getProcessInstanceId()); + + // 处理并案信息撤回 + if ("committee".equals(task.getTaskName())) { + // 如果有并案,删掉并案数据(傻逼提的需求) + ProposalMerge proposalMerge = dao.fetch(ProposalMerge.class, Cnd.where("proposalId", "=", processInstance.getBusinessNo())); + + if (Lang.isNotEmpty(proposalMerge)) { + dao.clear(ProposalMerge.class, Cnd.where(ProposalMerge::getGroupId, "=", proposalMerge.getGroupId())); + } + } + } + } +}