From 20240b6d1ea8ba347e0aaed25b5fbfaae7b4cf74 Mon Sep 17 00:00:00 2001 From: dd3s_206 Date: Fri, 22 May 2026 10:16:55 +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=E9=A1=B5=E9=9D=A2=E4=BC=98=E5=8C=96?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AppealCommonController.java | 39 +++++++++++++++++++ .../controller/AppealQueryController.java | 16 -------- .../controller/AppealTypeController.java | 15 +++++++ .../zhgh/democratic/appeal/accept/index.html | 2 +- .../zhgh/democratic/appeal/execute/index.html | 2 +- .../zhgh/democratic/appeal/mine/index.html | 2 +- .../zhgh/democratic/appeal/query/index.html | 27 +++++-------- .../zhgh/democratic/appeal/type/index.html | 37 ++++++++++++++++-- 8 files changed, 99 insertions(+), 41 deletions(-) diff --git a/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealCommonController.java b/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealCommonController.java index 3c29861..cc6f8f3 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealCommonController.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealCommonController.java @@ -30,6 +30,45 @@ public class AppealCommonController { return Result.success(appealTypeService.query(Cnd.where("enabled", "=", true).asc("sort").desc("createdAt"))); } + @At + @SaCheckLogin + public Result queryTypeOptions() { + Sql sql = Sqls.create(""" + SELECT + type_data.* + FROM + ( + SELECT + atype.id, + atype.`name`, + atype.enabled, + atype.sort + FROM + appeal_type atype + WHERE + atype.enabled = 1 + UNION + SELECT + info.appealTypeId AS id, + COALESCE(MAX(atype.`name`), MAX(info.appealTypeName)) AS `name`, + COALESCE(MAX(atype.enabled), 0) AS enabled, + COALESCE(MAX(atype.sort), 999999) AS sort + FROM + appeal_info info + LEFT JOIN appeal_type atype ON atype.id = info.appealTypeId + WHERE + info.appealTypeId IS NOT NULL + AND info.appealTypeId != '' + GROUP BY + info.appealTypeId + ) type_data + ORDER BY + type_data.sort ASC, + type_data.`name` ASC + """); + return Result.success(appealTypeService.listMap(sql)); + } + @At @SaCheckLogin public Result unitOptions(String unionId) { 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 c691ad0..b8bb62f 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,21 +4,17 @@ 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.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") @@ -26,8 +22,6 @@ import org.nutz.mvc.annotation.Param; @Api("申诉管理-查询统计") public class AppealQueryController { - @Inject - private FlowEngine flowEngine; @Inject private AppealInfoService appealInfoService; @@ -80,16 +74,6 @@ public class AppealQueryController { return Result.success(data); } - @At - @SaCheckPermission("appeal.query") - @Aop(TransAop.READ_COMMITTED) - @ApiOperation("删除申诉") - public Result delete(@Param("id") String id) { - 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/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealTypeController.java b/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealTypeController.java index 73ce7fd..1ffaefa 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealTypeController.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealTypeController.java @@ -6,10 +6,12 @@ import cn.hutool.core.util.StrUtil; import com.budwk.app.base.annotation.SLog; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.result.Result; +import com.budwk.app.zhgh.democratic.appeal.models.AppealInfo; import com.budwk.app.zhgh.democratic.appeal.models.AppealType; import com.budwk.app.zhgh.democratic.appeal.service.AppealTypeService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.nutz.dao.Chain; import org.nutz.dao.Cnd; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; @@ -59,11 +61,24 @@ public class AppealTypeController { return Result.success(); } + @At + @SaCheckPermission("appeal.type") + @ApiOperation("修改申诉类型启用状态") + @SLog(tag = "申诉管理-类型维护", msg = "修改申诉类型启用状态") + public Result statusChange(String id, Boolean enabled) { + appealTypeService.update(Chain.make("enabled", enabled), Cnd.where("id", "=", id)); + return Result.success(); + } + @At @SaCheckPermission("appeal.type") @ApiOperation("删除申诉类型") @SLog(tag = "申诉管理-类型维护", msg = "删除申诉类型") public Result delete(@Param("id") String id) { + int count = appealTypeService.dao().count(AppealInfo.class, Cnd.where("appealTypeId", "=", id)); + if (count > 0) { + return Result.error("该类型有关联的申诉,无法删除!"); + } appealTypeService.delete(id); return Result.success(); } diff --git a/src/main/resources/views/platform/zhgh/democratic/appeal/accept/index.html b/src/main/resources/views/platform/zhgh/democratic/appeal/accept/index.html index d035cb5..b0010e3 100644 --- a/src/main/resources/views/platform/zhgh/democratic/appeal/accept/index.html +++ b/src/main/resources/views/platform/zhgh/democratic/appeal/accept/index.html @@ -40,7 +40,7 @@ layout("/layouts/platform.html"){ - + - + - + - + @@ -209,8 +208,8 @@ layout("/layouts/platform.html"){ {title: "待受理", prop: "waitAcceptCount", tip: "委员会待审核", icon: "el-icon-time", className: "stat-wait"}, {title: "待执行", prop: "waitExecuteCount", tip: "单位待反馈", icon: "el-icon-s-operation", className: "stat-execute"}, {title: "已办结", prop: "finishCount", tip: "流程已结束", icon: "el-icon-finished", className: "stat-finish"}, - {title: "维持决定", prop: "maintainCount", tip: "维持原处理", icon: "el-icon-circle-check", className: "stat-maintain"}, - {title: "重新处理", prop: "reprocessCount", tip: "需重新处理", icon: "el-icon-refresh", className: "stat-reprocess"} + /*{title: "维持决定", prop: "maintainCount", tip: "维持原处理", icon: "el-icon-circle-check", className: "stat-maintain"}, + {title: "重新处理", prop: "reprocessCount", tip: "需重新处理", icon: "el-icon-refresh", className: "stat-reprocess"}*/ ], statistics: {} } @@ -219,6 +218,9 @@ layout("/layouts/platform.html"){ statisticValue(prop) { return (this.statistics && this.statistics[prop]) || 0 }, + typeOptionLabel(item) { + return item.enabled === false || item.enabled === 0 ? item.name + "(已停用)" : item.name + }, stateTagType(state) { const map = { "待受理": "warning", @@ -247,19 +249,8 @@ layout("/layouts/platform.html"){ this.pageData() this.loadStatistics() }, - onDelete(row) { - this.$confirm("您确定删除该申诉吗?", "提示", {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() - } - }) - }) - }, loadOptions() { - this.$axios.post("/platform/appeal/common/typeOptions").then((res) => { + this.$axios.post("/platform/appeal/common/queryTypeOptions").then((res) => { if (res.code === 0) this.typeOptions = res.data || [] }) this.$businessTool.listUnit().then((res) => { diff --git a/src/main/resources/views/platform/zhgh/democratic/appeal/type/index.html b/src/main/resources/views/platform/zhgh/democratic/appeal/type/index.html index 85ac1b4..671d1af 100644 --- a/src/main/resources/views/platform/zhgh/democratic/appeal/type/index.html +++ b/src/main/resources/views/platform/zhgh/democratic/appeal/type/index.html @@ -22,11 +22,16 @@ layout("/layouts/platform.html"){ - +