From f5255fc06be167555d3b5fa450e5c15f74b6a6fc Mon Sep 17 00:00:00 2001
From: niujiyi <18272501226@163.com>
Date: Wed, 10 Jun 2026 19:31:29 +0800
Subject: [PATCH 1/6] =?UTF-8?q?=E6=89=A7=E6=B3=95=E7=AB=AF-=E7=99=BB?=
=?UTF-8?q?=E8=AE=B0=E5=9C=B0=E5=9D=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../service/impl/EnforcementRegistrationServiceImpl.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementRegistrationServiceImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementRegistrationServiceImpl.java
index f3e8774e..05a6ef86 100644
--- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementRegistrationServiceImpl.java
+++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementRegistrationServiceImpl.java
@@ -645,8 +645,8 @@ public class EnforcementRegistrationServiceImpl implements IEnforcementRegistrat
district = extract(bo.getEnterpriseAddress(), "([^\\s市]+?区)");
street = extract(bo.getEnterpriseAddress(), "([^\\s区]+?街道)");
}
- vo.setDistrict(district);
- vo.setStreet(street);
+ bo.setDistrict(district);
+ bo.setStreet(street);
resNum = baseMapper.insertEnforcementRegistration(bo);
// unionNo 上来不等于null, 那么说明关联了联合检查, 则直接新增, 并且将之前的所有 uninoNo相同的 hasUnion更新为 1
From e6c16440252791e009c6ed0a886dd3290eb3fff0 Mon Sep 17 00:00:00 2001
From: niujiyi <18272501226@163.com>
Date: Thu, 11 Jun 2026 10:26:55 +0800
Subject: [PATCH 2/6] =?UTF-8?q?=E7=9B=91=E7=9D=A3=E7=AB=AF-=E8=BF=87?=
=?UTF-8?q?=E6=BB=A4=E5=AF=8C=E6=96=87=E6=9C=ACxss?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/main/resources/application-dev.yml | 9 +++++++++
.../src/main/resources/application-prod.yml | 9 +++++++++
.../src/main/resources/application.yml | 4 +++-
3 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/zdxt-web-server/zdxt-admin-web-server/src/main/resources/application-dev.yml b/zdxt-web-server/zdxt-admin-web-server/src/main/resources/application-dev.yml
index 1c6cfc7e..06e58e91 100644
--- a/zdxt-web-server/zdxt-admin-web-server/src/main/resources/application-dev.yml
+++ b/zdxt-web-server/zdxt-admin-web-server/src/main/resources/application-dev.yml
@@ -342,3 +342,12 @@ srnwg:
# integrationKey: ENC(8RZtrfL4t5tsEk7lfrw00+4hSxbjxcVM)
# paasId: szsfj_zhifajianduma_001
# paasToken: ENC(0Cg8Vtpay+3hwRm+vJB0utikr4dXcEguwSaxlbTWkgQ4parB8pN2rL2xrhQ8eUd5)
+
+--- # XSS过滤配置
+xss:
+ # 开启XSS过滤
+ enabled: true
+ # 排除链接(不进行XSS过滤的URL,这些接口需要接收富文本HTML内容)
+ excludeUrls:
+ - /web/enforcementcode/educationServices/add
+ - /web/enforcementcode/educationServices/edit
diff --git a/zdxt-web-server/zdxt-admin-web-server/src/main/resources/application-prod.yml b/zdxt-web-server/zdxt-admin-web-server/src/main/resources/application-prod.yml
index 59c1404f..082a2935 100644
--- a/zdxt-web-server/zdxt-admin-web-server/src/main/resources/application-prod.yml
+++ b/zdxt-web-server/zdxt-admin-web-server/src/main/resources/application-prod.yml
@@ -274,3 +274,12 @@ justauth:
client-id: 10**********6
client-secret: 1f7d08**********5b7**********29e
redirect-uri: ${justauth.address}/social-callback?source=gitea
+
+--- # XSS过滤配置
+xss:
+ # 开启XSS过滤
+ enabled: true
+ # 排除链接(不进行XSS过滤的URL,这些接口需要接收富文本HTML内容)
+ excludeUrls:
+ - /web/enforcementcode/educationServices/add
+ - /web/enforcementcode/educationServices/edit
diff --git a/zdxt-web-server/zdxt-admin-web-server/src/main/resources/application.yml b/zdxt-web-server/zdxt-admin-web-server/src/main/resources/application.yml
index 13d41076..3d1c99fe 100644
--- a/zdxt-web-server/zdxt-admin-web-server/src/main/resources/application.yml
+++ b/zdxt-web-server/zdxt-admin-web-server/src/main/resources/application.yml
@@ -281,9 +281,11 @@ springdoc:
xss:
# 过滤开关
enabled: true
- # 排除链接
+ # 排除链接(不进行XSS过滤的URL,这些接口需要接收富文本HTML内容)
excludeUrls:
- /system/notice
+ - /web/enforcementcode/educationServices/add
+ - /web/enforcementcode/educationServices/edit
--- # 分布式锁 lock4j 全局配置
lock4j:
From 9cc13880391cab2df3b833452ac2041be01b0775 Mon Sep 17 00:00:00 2001
From: niujiyi <18272501226@163.com>
Date: Thu, 11 Jun 2026 11:09:40 +0800
Subject: [PATCH 3/6] =?UTF-8?q?=E6=89=93=E5=8C=85=E5=91=BD=E4=BB=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
doc/打包命令/命令 | 14 ++++++++++++++
1 file changed, 14 insertions(+)
create mode 100644 doc/打包命令/命令
diff --git a/doc/打包命令/命令 b/doc/打包命令/命令
new file mode 100644
index 00000000..4e6fd96f
--- /dev/null
+++ b/doc/打包命令/命令
@@ -0,0 +1,14 @@
+后端
+1、进入目录:cd /usr/local/project/
+2、查看目录下文件:ls
+3、查看系统运行java 进程:ps -ef | grep java
+4、杀死进程:kill 9 31888
+5、清空终端屏幕:clear
+6、后台启动 Java 项目 + 关闭终端不退出 + 日志全部写入 app.log 文件:nohup java -jar zdxt-admin-web-server.jar > app.log 2>&1 &
+7、实时盯紧 Java 程序的运行日志:tail -f app.log
+
+前端
+文件命名:监督端:admin-plus-dev 执法端:enforcement-dev 企业端:enterprise-dev
+1、前端地址: /usr/local/nginx/html
+2、解压:unzip xxx.zip
+3、删除文件 rm -f admin-plus-dev.zip
From 35a0c337067b23d1dbf355caea84b1133dcf9c05 Mon Sep 17 00:00:00 2001
From: niujiyi <18272501226@163.com>
Date: Thu, 11 Jun 2026 14:30:35 +0800
Subject: [PATCH 4/6] =?UTF-8?q?=E5=89=8D=E7=AB=AF-=E6=89=A7=E6=B3=95?=
=?UTF-8?q?=E4=BA=8B=E9=A1=B9=E5=8F=82=E6=95=B0=E8=B5=8B=E5=80=BC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../views/enterprise/enforcement/enforcementEvaluateDetail.vue | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/enforcement/enforcementEvaluateDetail.vue b/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/enforcement/enforcementEvaluateDetail.vue
index 82e6adb6..d4ea8251 100644
--- a/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/enforcement/enforcementEvaluateDetail.vue
+++ b/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/enforcement/enforcementEvaluateDetail.vue
@@ -46,7 +46,7 @@
执法事项
- {{ detail.lawEnforcementItem }}
+ {{ detail.lawEnforcementItemText }}
执法时间
From e7e31eff6da68b756fc78661c55276b591eb80f2 Mon Sep 17 00:00:00 2001
From: niujiyi <18272501226@163.com>
Date: Thu, 11 Jun 2026 17:10:04 +0800
Subject: [PATCH 5/6] =?UTF-8?q?=E6=89=A7=E6=B3=95=E7=AB=AF-=E4=BC=98?=
=?UTF-8?q?=E5=8C=96=E6=9F=A5=E8=AF=A2=E8=AE=A1=E5=88=92=E9=80=9A=E7=9F=A5?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../EnforcementInspectionProgramMapper.xml | 34 ++++++++++++++-----
1 file changed, 26 insertions(+), 8 deletions(-)
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EnforcementInspectionProgramMapper.xml b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EnforcementInspectionProgramMapper.xml
index fab64e3e..62039d55 100644
--- a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EnforcementInspectionProgramMapper.xml
+++ b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EnforcementInspectionProgramMapper.xml
@@ -161,15 +161,33 @@
order by create_time desc
-
+
From 5e71035db390f27eee88c59e3a30fd15595ab178 Mon Sep 17 00:00:00 2001
From: niujiyi <18272501226@163.com>
Date: Thu, 11 Jun 2026 17:37:24 +0800
Subject: [PATCH 6/6] =?UTF-8?q?=E6=89=A7=E6=B3=95=E7=AB=AF-=E4=BC=98?=
=?UTF-8?q?=E5=8C=96=E6=9F=A5=E8=AF=A2=E8=AE=A1=E5=88=92=E9=80=9A=E7=9F=A5?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=8C=E9=A1=B5=E9=9D=A2=E6=95=B0=E6=8D=AE?=
=?UTF-8?q?=E7=BB=91=E5=AE=9A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../EnforcementInspectionProgramMapper.java | 21 ++++++++
...forcementInspectionProgramServiceImpl.java | 29 +++++++++--
.../EnforcementInspectionProgramMapper.xml | 30 ++++++++++++
.../src/api/enforcement/index.js | 3 ++
.../enforcement/message/planNoticeList.vue | 49 ++++++++++++++++---
5 files changed, 122 insertions(+), 10 deletions(-)
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/EnforcementInspectionProgramMapper.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/EnforcementInspectionProgramMapper.java
index 7b18578f..1bb6e71d 100644
--- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/EnforcementInspectionProgramMapper.java
+++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/EnforcementInspectionProgramMapper.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zdxt.enforcementcode.domain.EnforcementInspectionProgram;
import com.zdxt.enforcementcode.domain.bo.EnforcementInspectionProgramBo;
import com.zdxt.enforcementcode.domain.vo.EnforcementInspectionProgramVo;
+import org.apache.ibatis.annotations.Param;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import java.util.List;
@@ -50,4 +51,24 @@ public interface EnforcementInspectionProgramMapper extends BaseMapperPlus
selectPlanPage(Page page, EnforcementInspectionProgramBo bo);
+ /**
+ * 分页查询计划列表(包含权限控制) - 优化版本
+ *
+ * @param page 分页参数
+ * @param bo 查询条件
+ * @param accessibleDeptIds 可访问的部门ID列表
+ * @return 计划分页列表
+ */
+ Page selectPlanPageOptimized(Page page,
+ EnforcementInspectionProgramBo bo,
+ @Param("accessibleDeptIds") List accessibleDeptIds);
+
+ /**
+ * 查询可访问的部门ID列表
+ *
+ * @param currentDeptId 当前部门ID
+ * @return 部门ID列表
+ */
+ List selectAccessibleDeptIds(@Param("currentDeptId") String currentDeptId);
+
}
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementInspectionProgramServiceImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementInspectionProgramServiceImpl.java
index c15ae2ea..a0346362 100644
--- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementInspectionProgramServiceImpl.java
+++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementInspectionProgramServiceImpl.java
@@ -202,7 +202,7 @@ public class EnforcementInspectionProgramServiceImpl implements IEnforcementInsp
}
/**
- * 分页查询计划列表(包含权限控制)
+ * 分页查询计划列表(包含权限控制)
*
* @param bo 查询条件
* @param pageQuery 分页参数
@@ -210,9 +210,13 @@ public class EnforcementInspectionProgramServiceImpl implements IEnforcementInsp
*/
@Override
public TableDataInfo selectPlanPage(EnforcementInspectionProgramBo bo, PageQuery pageQuery) {
- Page result = baseMapper.selectPlanPage(pageQuery.build(), bo);
+ // 1. 先查询当前部门及其所有下级部门的ID列表
+ List accessibleDeptIds = getAccessibleDeptIds(bo.getDeptId());
- // 批量查询关联的文件列表(优化 N+1 查询问题)
+ // 2. 将部门ID列表传入查询
+ Page result = baseMapper.selectPlanPageOptimized(pageQuery.build(), bo, accessibleDeptIds);
+
+ // 批量查询关联的文件列表(优化 N+1 查询问题)
if (result.getRecords() != null && !result.getRecords().isEmpty()) {
// 1. 收集所有计划ID
List planIds = result.getRecords().stream()
@@ -227,7 +231,7 @@ public class EnforcementInspectionProgramServiceImpl implements IEnforcementInsp
fileLqw.eq(ZdxtFile::getIsDelete2, 0); // 只查询未删除的文件
List allFiles = zdxtFileMapper.selectVoList(fileLqw);
- // 3. 按 businessId 分组,构建 Map
+ // 3. 按 businessId 分组,构建 Map
Map> filesByPlanId = allFiles.stream()
.collect(Collectors.groupingBy(ZdxtFileVo::getBusinessId));
@@ -242,6 +246,23 @@ public class EnforcementInspectionProgramServiceImpl implements IEnforcementInsp
return TableDataInfo.build(result);
}
+ /**
+ * 获取可访问的部门ID列表(包括当前部门和所有下级部门)
+ *
+ * @param currentDeptId 当前部门ID
+ * @return 可访问的部门ID列表
+ */
+ private List getAccessibleDeptIds(String currentDeptId) {
+ if (StringUtils.isBlank(currentDeptId)) {
+ return Collections.emptyList();
+ }
+
+ // 查询当前部门及其所有下级部门的ID
+ // 这里需要注入 SysDeptMapper 或者调用现有的部门服务
+ // 示例代码,需要根据实际项目调整
+ return baseMapper.selectAccessibleDeptIds(currentDeptId);
+ }
+
private LambdaQueryWrapper buildQueryWrapper(EnforcementInspectionProgramBo bo) {
Map params = bo.getParams();
LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EnforcementInspectionProgramMapper.xml b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EnforcementInspectionProgramMapper.xml
index 62039d55..bb195737 100644
--- a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EnforcementInspectionProgramMapper.xml
+++ b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EnforcementInspectionProgramMapper.xml
@@ -190,4 +190,34 @@
ORDER BY create_time DESC
+
+
+
+
+
+
diff --git a/zdxt-web-client/zdxt-efcode-enforcement-app/src/api/enforcement/index.js b/zdxt-web-client/zdxt-efcode-enforcement-app/src/api/enforcement/index.js
index bb44fd8f..d8a033e9 100644
--- a/zdxt-web-client/zdxt-efcode-enforcement-app/src/api/enforcement/index.js
+++ b/zdxt-web-client/zdxt-efcode-enforcement-app/src/api/enforcement/index.js
@@ -72,6 +72,9 @@ export const queryEnforcementNoticeList = (params, success, error) => _post(base
// 执法预告列表
export const getLawNoticeList = (params, success, error) => _post(baseUrl + "/enforcement/queryList", params, success, error);
+//计划通知列表
+export const queryListNoPermission = (params, success, error) => _get(baseUrl + "/inspectionProgram/queryListNoPermission", params, success, error);
+
// 执法评价列表
export const queryEvaluateList = (params, success, error) => _get("/app-ent/evaluate/queryEvaluateList", params, success, error);
diff --git a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/message/planNoticeList.vue b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/message/planNoticeList.vue
index fdf2a67f..19c8e204 100644
--- a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/message/planNoticeList.vue
+++ b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/message/planNoticeList.vue
@@ -24,7 +24,7 @@
@@ -33,15 +33,27 @@
执法区域:
- {{ item.unitCheck }}
+ {{ item.enforcementAreaName || item.enforcementArea }}
发布时间:
- {{ item.checkTime }}
+ {{ item.enforcementTime }}
附件:
-
+
+
+
+ {{ file.fileName || file.fileSaveName || '未知文件' }}
+
+
+ 无
+
@@ -56,7 +68,7 @@ import { ref, onMounted } from 'vue';
import { useRouter } from 'vue-router';
import { showToast } from 'vant';
import 'vant/es/toast/style';
-import { getLawNoticeList } from '@/api/enforcement/index';
+import { queryListNoPermission } from '@/api/enforcement/index';
const router = useRouter();
@@ -76,7 +88,7 @@ const fetchList = () => {
pageSize: pageSize.value,
queryParam: searchText.value || undefined,
};
- getLawNoticeList(params, (res) => {
+ queryListNoPermission(params, (res) => {
if (res.code === 200) {
const rows = res.rows || [];
const total = res.total;
@@ -143,6 +155,21 @@ const onClickLeft = () => {
router.back();
};
+// ========== 下载附件 ==========
+const downloadAttachment = (file) => {
+ if (!file || !file.guid) {
+ showToast('无法下载该附件');
+ return;
+ }
+ const downloadUrl = `/api/enf-ep/app-enf/common/file/download?guid=${file.guid}`;
+ const link = document.createElement('a');
+ link.href = downloadUrl;
+ link.download = file.fileName || file.fileSaveName;
+ document.body.appendChild(link);
+ link.click();
+ document.body.removeChild(link);
+};
+
// ========== 组件挂载时加载数据 ==========
onMounted(() => {
// fetchList();
@@ -259,6 +286,16 @@ onMounted(() => {
.value {
flex: 1;
color: #999;
+ display: flex;
+ flex-wrap: wrap;
+ gap: 8px;
+ }
+
+ .attachment-link {
+ color: #2d94fa;
+ text-decoration: underline;
+ word-break: break-all;
+ cursor: pointer;
}
}