From f441623aece60e77361ba6b869dee06cb2b0d108 Mon Sep 17 00:00:00 2001 From: hongqiwei <1143662660@qq.com> Date: Mon, 14 Sep 2026 11:03:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=8F=E4=BC=9A=E5=88=9B=E5=BB=BA=E6=96=87?= =?UTF-8?q?=E5=8C=96=E6=B4=BB=E5=8A=A8=E5=88=A0=E9=99=A4=E4=BA=86=E4=B9=9F?= =?UTF-8?q?=E4=BC=9A=E5=88=A0=E9=99=A4=E5=AF=B9=E5=BA=94=E4=BA=BA=E7=9A=84?= =?UTF-8?q?=E5=BE=85=E5=8A=9E=EF=BC=88=E5=B7=A5=E4=BD=9C=E6=B5=81=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ActivityCultureInfoManageController.java | 11 ++++++---- .../service/ActivityCultureService.java | 7 ++++++ .../impl/ActivityCultureServiceImpl.java | 22 +++++++++++++++++++ 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/budwk/app/zhgh/activity/culture/controller/ActivityCultureInfoManageController.java b/src/main/java/com/budwk/app/zhgh/activity/culture/controller/ActivityCultureInfoManageController.java index 488945d..aa1bbe8 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/culture/controller/ActivityCultureInfoManageController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/culture/controller/ActivityCultureInfoManageController.java @@ -10,7 +10,6 @@ import com.budwk.app.base.result.Result; import com.budwk.app.sys.models.Sys_home_activity; import com.budwk.app.zhgh.activity.basic.models.ActivityBasicSettings; import com.budwk.app.zhgh.activity.culture.models.ActivityTissue; -import com.budwk.app.zhgh.activity.culture.models.ActivityTissuePerson; import com.budwk.app.zhgh.activity.culture.service.ActivityCultureService; import io.swagger.annotations.ApiOperation; import org.nutz.aop.interceptor.ioc.TransAop; @@ -81,14 +80,18 @@ public class ActivityCultureInfoManageController { return Result.success(); } + /** + * 删除指定文化活动及其关联流程。 + * + * @param id 文化活动主表 ID,由活动列表当前行传入 + * @return Result 成功响应,code 为 0;不返回业务数据 + */ @At @Aop(TransAop.READ_COMMITTED) @SLog(tag = "文化活动", msg = "删除了一条活动") @SaCheckPermission(value = {"activity.culture.infoManage.school", "activity.culture.infoManage.union", "activity.culture.infoManage.club"}, mode = SaMode.OR) public Result doDelete(@Valid String id) { - activityCultureService.delete(id); - activityCultureService.dao().clear(ActivityTissuePerson.class, Cnd.where(ActivityTissuePerson::getTissueId, "=", id)); - activityCultureService.dao().delete(Sys_home_activity.class, id); + activityCultureService.doDeleteActivity(id); return Result.success(); } diff --git a/src/main/java/com/budwk/app/zhgh/activity/culture/service/ActivityCultureService.java b/src/main/java/com/budwk/app/zhgh/activity/culture/service/ActivityCultureService.java index 8c38bed..124bb70 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/culture/service/ActivityCultureService.java +++ b/src/main/java/com/budwk/app/zhgh/activity/culture/service/ActivityCultureService.java @@ -21,6 +21,13 @@ public interface ActivityCultureService extends BaseService { void doEditActivity(ActivityTissue tissue); + /** + * 删除文化活动及关联的 WF 流程任务、实例;未发起流程时仅删除业务数据。 + * + * @param id 文化活动主表 ID,同时作为 WF 流程的 businessNo + */ + void doDeleteActivity(String id); + Object pageData(PageForm page, String year, String name, String unionId, Integer activity_type); NutMap findOne(String id); diff --git a/src/main/java/com/budwk/app/zhgh/activity/culture/service/impl/ActivityCultureServiceImpl.java b/src/main/java/com/budwk/app/zhgh/activity/culture/service/impl/ActivityCultureServiceImpl.java index c56742b..9fc5161 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/culture/service/impl/ActivityCultureServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/activity/culture/service/impl/ActivityCultureServiceImpl.java @@ -5,6 +5,8 @@ import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.model.Audit; import com.budwk.app.base.param.PageForm; import com.budwk.app.base.service.impl.BaseServiceImpl; +import com.budwk.app.flow.engine.FlowEngine; +import com.budwk.app.sys.models.Sys_home_activity; import com.budwk.app.web.commons.auth.utils.AuthUtil; import com.budwk.app.web.commons.auth.utils.SecurityUtil; import com.budwk.app.zhgh.activity.culture.models.ActivityTissue; @@ -12,11 +14,13 @@ import com.budwk.app.zhgh.activity.culture.models.ActivityTissuePerson; import com.budwk.app.zhgh.activity.culture.service.ActivityCultureService; import com.budwk.app.zhgh.club.model.SysClub; import com.budwk.app.zhgh.club.service.SysClubService; +import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; import org.nutz.dao.util.cri.SqlExpressionGroup; +import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.lang.Strings; @@ -40,6 +44,9 @@ public class ActivityCultureServiceImpl extends BaseServiceImpl @Inject private SysClubService sysClubService; + @Inject + private FlowEngine flowEngine; + @Override public List getUnionData(String activityScopeGroupId) { if (StrUtil.isBlank(activityScopeGroupId)) { @@ -74,6 +81,21 @@ public class ActivityCultureServiceImpl extends BaseServiceImpl } + /** + * 在同一事务内删除活动、活动人员、首页活动展示及关联 WF 任务和实例。 + * + * @param id 文化活动主表 ID,同时作为 WF 流程的 businessNo + */ + @Override + @Aop(TransAop.READ_COMMITTED) + public void doDeleteActivity(String id) { + delete(id); + dao().clear(ActivityTissuePerson.class, Cnd.where(ActivityTissuePerson::getTissueId, "=", id)); + dao().delete(Sys_home_activity.class, id); + // 复用其他“我的申请”页面的删除能力;无流程实例的校工会活动、草稿会直接跳过流程清理。 + flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id); + } + @Override public void doEditActivity(ActivityTissue tissue) { update(tissue);