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"){
-
+
查看
修改
diff --git a/src/main/resources/views/platform/zhgh/democratic/appeal/query/index.html b/src/main/resources/views/platform/zhgh/democratic/appeal/query/index.html
index b7cf751..908a51e 100644
--- a/src/main/resources/views/platform/zhgh/democratic/appeal/query/index.html
+++ b/src/main/resources/views/platform/zhgh/democratic/appeal/query/index.html
@@ -196,9 +196,10 @@ 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()