From 37f52d9f1a7e719c001da18edbc2e5db87c4aefa Mon Sep 17 00:00:00 2001 From: dd3s_206 Date: Fri, 12 Jun 2026 11:02:46 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=B3=E8=AF=89=E7=AE=A1=E7=90=86=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=EF=BC=9A=20=E6=9F=A5=E8=AF=A2=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E5=B7=B2=E5=AE=8C=E6=88=90=E6=96=B0=E5=A2=9E=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=8C=89=E9=92=AE=EF=BC=88=E4=BB=85=E8=B6=85=E7=BA=A7=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=91=98=E5=8F=AF=E8=A7=81=EF=BC=89=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AppealQueryController.java | 22 +++++++++++++++++++ .../zhgh/democratic/appeal/mine/index.html | 2 +- .../zhgh/democratic/appeal/query/index.html | 21 +++++++++++++++++- 3 files changed, 43 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealQueryController.java b/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealQueryController.java index 36f4b12..a7c106c 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealQueryController.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealQueryController.java @@ -4,17 +4,23 @@ import cn.dev33.satoken.annotation.SaCheckPermission; import cn.hutool.core.util.StrUtil; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.result.Result; +import com.budwk.app.flow.engine.FlowEngine; +import com.budwk.app.flow.entity.ProcessInstance; +import com.budwk.app.flow.enums.ProcessInstanceStateEnum; import com.budwk.app.zhgh.democratic.appeal.service.AppealInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Cnd; import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; +import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.lang.util.NutMap; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; @IocBean @At("/platform/appeal/query") @@ -24,6 +30,8 @@ public class AppealQueryController { @Inject private AppealInfoService appealInfoService; + @Inject + private FlowEngine flowEngine; @At("") @Ok("beetl:/platform/zhgh/democratic/appeal/query/index.html") @@ -72,6 +80,20 @@ public class AppealQueryController { return Result.success(data); } + @At + @SaCheckPermission("appeal.query") + @Aop(TransAop.READ_COMMITTED) + @ApiOperation("删除申诉") + public Result delete(@Param("id") String id) { + ProcessInstance instance = flowEngine.processInstanceService().fetch(Cnd.where(ProcessInstance::getBusinessNo, "=", id)); + if (instance == null || !ProcessInstanceStateEnum.FINISHED.getCode().equals(instance.getState())) { + return Result.error("仅可删除已完成的申诉记录"); + } + appealInfoService.delete(id); + flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id); + return Result.success(); + } + private Cnd buildCondition(String searchKeyword, String appealTypeId, String state, String unitId, String defendantUnitId, Integer year) { Cnd cnd = Cnd.NEW(); diff --git a/src/main/resources/views/platform/zhgh/democratic/appeal/mine/index.html b/src/main/resources/views/platform/zhgh/democratic/appeal/mine/index.html index 3bc00ca..f8054c4 100644 --- a/src/main/resources/views/platform/zhgh/democratic/appeal/mine/index.html +++ b/src/main/resources/views/platform/zhgh/democratic/appeal/mine/index.html @@ -77,7 +77,7 @@ layout("/layouts/platform.html"){ - + - + @@ -257,6 +258,24 @@ layout("/layouts/platform.html"){ this.$refs.infoRef.onOpen(row) }) }, + canDelete(row) { + return this.$auth.hasRole('SYSADMIN') && row.state === '已办结' && Number(row.instanceState) === 20 + }, + onDelete(row) { + this.$confirm("您确定要删除吗?", "提示", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning" + }).then(() => { + this.$axios.post("/platform/appeal/query/delete", {id: row.id}).then((res) => { + if (res.code === 0) { + this.$message.success(res.msg) + this.pageData() + this.loadStatistics() + } + }) + }) + }, doSearch() { this.pageNumber = 1 this.pageData()