协会创建文化活动删除了也会删除对应人的待办(工作流记录)

This commit is contained in:
2026-09-14 11:03:50 +08:00
parent 07b38a2251
commit f441623aec
3 changed files with 36 additions and 4 deletions
@@ -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();
}
@@ -21,6 +21,13 @@ public interface ActivityCultureService extends BaseService<ActivityTissue> {
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);
@@ -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<ActivityTissue>
@Inject
private SysClubService sysClubService;
@Inject
private FlowEngine flowEngine;
@Override
public List<NutMap> getUnionData(String activityScopeGroupId) {
if (StrUtil.isBlank(activityScopeGroupId)) {
@@ -74,6 +81,21 @@ public class ActivityCultureServiceImpl extends BaseServiceImpl<ActivityTissue>
}
/**
* 在同一事务内删除活动、活动人员、首页活动展示及关联 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);