瀏覽代碼

交易市场平台(供应商)

wwh 1 月之前
父節點
當前提交
4775d7ede2
共有 14 個文件被更改,包括 32 次插入14 次删除
  1. 1 1
      baqing-admin/src/main/java/com/ruoyi/web/modules/architecture/support/GrowthSlaughterStandardRules.java
  2. 1 1
      baqing-admin/src/main/java/com/ruoyi/web/modules/farming/support/LivestockKnowledgeRules.java
  3. 3 0
      baqing-admin/src/test/java/com/ruoyi/web/modules/architecture/support/GrowthSlaughterStandardRulesTest.java
  4. 6 0
      baqing-admin/src/test/java/com/ruoyi/web/modules/farming/support/LivestockKnowledgeValidationTest.java
  5. 4 1
      doc/养殖标准体系/生长与出栏标准/生长与出栏标准管理前端技术方案.md
  6. 1 1
      doc/养殖标准体系/生长与出栏标准/生长与出栏标准管理功能需求-草稿.md
  7. 2 1
      doc/养殖标准体系/生长与出栏标准/生长与出栏标准管理功能需求.md
  8. 2 1
      doc/养殖标准体系/生长与出栏标准/生长与出栏标准管理技术方案.md
  9. 3 2
      doc/养殖标准体系/生长与出栏标准/生长与出栏标准管理测试用例.md
  10. 1 1
      doc/牧业养殖科技服务/综合牧业知识库/综合牧业知识库前端技术方案.md
  11. 2 1
      doc/牧业养殖科技服务/综合牧业知识库/综合牧业知识库技术方案.md
  12. 2 1
      doc/牧业养殖科技服务/综合牧业知识库/综合牧业知识库测试用例.md
  13. 1 1
      doc/牧业养殖科技服务/综合牧业知识库/综合牧业知识库管理功能需求-草稿.md
  14. 3 2
      doc/牧业养殖科技服务/综合牧业知识库/综合牧业知识库管理功能需求.md

+ 1 - 1
baqing-admin/src/main/java/com/ruoyi/web/modules/architecture/support/GrowthSlaughterStandardRules.java

@@ -59,7 +59,7 @@ public final class GrowthSlaughterStandardRules
59 59
     {
60 60
         String ext = extensionOf(filenameOrPath);
61 61
         return ext.equals("pdf") || ext.equals("md") || ext.equals("doc") || ext.equals("docx")
62
-                || ext.equals("xls") || ext.equals("xlsx") || ext.equals("ppt") || ext.equals("pptx");
62
+                || ext.equals("xls") || ext.equals("xlsx") || ext.equals("pptx");
63 63
     }
64 64
 
65 65
     public static boolean isCoverExtensionAllowed(String filenameOrPath)

+ 1 - 1
baqing-admin/src/main/java/com/ruoyi/web/modules/farming/support/LivestockKnowledgeRules.java

@@ -46,7 +46,7 @@ public final class LivestockKnowledgeRules
46 46
     {
47 47
         String ext = extensionOf(filenameOrPath);
48 48
         return ext.equals("pdf") || ext.equals("md") || ext.equals("doc") || ext.equals("docx")
49
-                || ext.equals("xls") || ext.equals("xlsx") || ext.equals("ppt") || ext.equals("pptx");
49
+                || ext.equals("xls") || ext.equals("xlsx") || ext.equals("pptx");
50 50
     }
51 51
 
52 52
     public static String extensionOf(String name)

+ 3 - 0
baqing-admin/src/test/java/com/ruoyi/web/modules/architecture/support/GrowthSlaughterStandardRulesTest.java

@@ -94,6 +94,9 @@ class GrowthSlaughterStandardRulesTest
94 94
     void contentExt()
95 95
     {
96 96
         assertTrue(GrowthSlaughterStandardRules.isContentExtensionAllowed("a.pdf"));
97
+        assertTrue(GrowthSlaughterStandardRules.isContentExtensionAllowed("readme.md"));
98
+        assertTrue(GrowthSlaughterStandardRules.isContentExtensionAllowed("slides.pptx"));
99
+        assertFalse(GrowthSlaughterStandardRules.isContentExtensionAllowed("legacy.ppt"));
97 100
         assertFalse(GrowthSlaughterStandardRules.isContentExtensionAllowed("a.exe"));
98 101
     }
99 102
 

+ 6 - 0
baqing-admin/src/test/java/com/ruoyi/web/modules/farming/support/LivestockKnowledgeValidationTest.java

@@ -76,6 +76,12 @@ class LivestockKnowledgeValidationTest
76 76
         assertDoesNotThrow(() -> {
77 77
             org.junit.jupiter.api.Assertions.assertTrue(
78 78
                     LivestockKnowledgeRules.isContentExtensionAllowed("doc.pdf"));
79
+            org.junit.jupiter.api.Assertions.assertTrue(
80
+                    LivestockKnowledgeRules.isContentExtensionAllowed("readme.md"));
81
+            org.junit.jupiter.api.Assertions.assertTrue(
82
+                    LivestockKnowledgeRules.isContentExtensionAllowed("slides.pptx"));
83
+            org.junit.jupiter.api.Assertions.assertFalse(
84
+                    LivestockKnowledgeRules.isContentExtensionAllowed("legacy.ppt"));
79 85
             org.junit.jupiter.api.Assertions.assertFalse(
80 86
                     LivestockKnowledgeRules.isContentExtensionAllowed("x.exe"));
81 87
         });

+ 4 - 1
doc/养殖标准体系/生长与出栏标准/生长与出栏标准管理前端技术方案.md

@@ -85,7 +85,9 @@
85 85
 
86 86
 ## 4. 上传与鉴权
87 87
 
88
-与设备实施作业标准页一致:`VUE_APP_BASE_API + '/common/upload'`,Header `Authorization: Bearer <token>`;成功取 `url`、`fileName`、`originalFilename`。正文后缀:`pdf`、`md`、`doc`、`docx`、`xls`、`xlsx`、`ppt`、`pptx`。
88
+与设备实施作业标准页一致:`VUE_APP_BASE_API + '/common/upload'`,Header `Authorization: Bearer <token>`;成功取 `url`、`fileName`、`originalFilename`。
89
+
90
+**正文后缀(需求/服务端)**:`pdf`、`md`、`doc`、`docx`、`xls`、`xlsx`、`pptx`(`GrowthSlaughterStandardRules`)。**说明**:当前页面 `contentFileExts` 暂未同步调整,**保存以服务端校验为准**。
89 91
 
90 92
 ---
91 93
 
@@ -190,3 +192,4 @@ import { listInformationCategoryChildren } from '@/api/category/informationCateg
190 192
 | --- | --- | --- |
191 193
 | v1.0 | 2026-05-13 | 初稿:页面、API、权限与后端 Controller 对齐 |
192 194
 | **v1.1** | **2026-06-01** | **标准类型改资讯类别编码**:动态加载 `parentCode=001&categoryType=4`;筛选/表单传 `code`;存量 `1`~`2` 回退展示;编辑/上传仅 **未发布+未同步**;补充类型加载失败与已同步编辑提示 |
195
+| **v1.2** | **2026-05-20** | 正文服务端白名单:`pdf`、`md`、`doc`、`docx`、`xls`、`xlsx`、`pptx`(移除 `ppt`);前端 `contentFileExts` 本次不改 |

+ 1 - 1
doc/养殖标准体系/生长与出栏标准/生长与出栏标准管理功能需求-草稿.md

@@ -2,7 +2,7 @@
2 2
 
3 3
 
4 4
 
5
-1. 新增生长与出栏标准:标准名称不能为空,长度 1–20;标准类型:牦牛生长/牦牛出栏,必填,支持单选;标准简介:限制50字内;标准内容:必填,支持后缀名为pdf、md、doc、docx、xls、xlsx、ppt,pptx等非结构化文档单选上传,文件大小30M以内;封面:支持后缀名为jpg、jpeg、png等图片单选上传,文件大小10M以内。
5
+1. 新增生长与出栏标准:标准名称不能为空,长度 1–20;标准类型:牦牛生长/牦牛出栏,必填,支持单选;标准简介:限制50字内;标准内容:必填,支持后缀名为 pdf、md、doc、docx、xls、xlsx、pptx 等非结构化文档单选上传,文件大小30M以内;封面:支持后缀名为jpg、jpeg、png等图片单选上传,文件大小10M以内。
6 6
 2. 查询生长与出栏标准列表:支持关键字(标准名称或标准简介)模糊匹配、标准类型精确匹配分页列出生长与出栏标准列表。
7 7
 3. 修改生长与出栏标准:标准名称、标准类型、标准简介、标准内容、封面均可修改。
8 8
 4. 删除生长与出栏标准:删除数据同时删除相关文件,并通知知识库删除该生长与出栏标准。

+ 2 - 1
doc/养殖标准体系/生长与出栏标准/生长与出栏标准管理功能需求.md

@@ -100,7 +100,7 @@
100 100
 | 标准名称 | 必填;长度 **1~20** 个字符(字符计数规则与项目全局一致) |
101 101
 | 标准类型 | 必填;单选,取值须为第 **2.1** 节所列资讯类别编码之一 |
102 102
 | 标准简介 | **选填**;若有内容,长度不超过 **50 字**(字数口径与项目全局一致) |
103
-| 标准内容 | **必填**;通过**单个**附件上传;允许后缀:`pdf`、`md`、`doc`、`docx`、`xls`、`xlsx`、`ppt`、`pptx`;单文件 ≤ **30 MB** |
103
+| 标准内容 | **必填**;通过**单个**附件上传;允许后缀:`pdf`、`md`、`doc`、`docx`、`xls`、`xlsx`、`pptx`;单文件 ≤ **30 MB** |
104 104
 | 封面 | **选填**;通过**单个**图片上传;允许后缀:`jpg`、`jpeg`、`png`(若产品要求支持 `webp` 等可追加);单文件 ≤ **10 MB** |
105 105
 
106 106
 **必填字段汇总:** 标准名称、标准类型、标准内容。
@@ -218,3 +218,4 @@
218 218
 - **标准简介**、**封面** 与养殖标准对齐为 **选填**;简介若有内容仍受 50 字上限约束。  
219 219
 - **标准名称** 长度为 **1~20** 字符(与同目录草稿及《养殖标准管理功能需求》一致)。  
220 220
 - **不**在本文展开技术栈、库表与接口设计;草稿第 11 条归入 **§6**;草稿第 12 条技术栈删除(由技术方案或项目统一说明)。
221
+- **标准内容**正文附件白名单调整为:`pdf`、`md`、`doc`、`docx`、`xls`、`xlsx`、`pptx`(不再支持旧版 `ppt`);与 `GrowthSlaughterStandardRules` 及通用上传白名单(含 `md`)一致;**前端上传校验数组本次不调整**,以服务端校验为准。

+ 2 - 1
doc/养殖标准体系/生长与出栏标准/生长与出栏标准管理技术方案.md

@@ -126,7 +126,7 @@ CREATE TABLE `biz_growth_slaughter_standard` (
126 126
 | 3.8 | 发布 | POST | `/growthSlaughter/standard/publish/{id}` | `growthSlaughter:standard:publish` | 前置 `publish_status=0` 且 `kb_sync_status=1`;按需调知识库「发布可见」;本地 `publish_status=1`,`publish_time=now()` |
127 127
 | 3.9 | 下架 | POST | `/growthSlaughter/standard/offline/{id}` | `growthSlaughter:standard:offline` | 前置 `publish_status=1`;调知识库「对外下架」(非移出);本地 `publish_status=0`,`kb_sync_status=1`,保留 `kb_doc_id`,`offline_time=now()` |
128 128
 
129
-**校验(摘要)**:名称长度 **1~20**;`standard_type` 非空且为资讯类别有效编码(**2.2**);简介 ≤50 字;正文后缀与白名单、≤30MB;封面后缀与白名单、≤10MB;服务端对 MIME/后缀二次校验
129
+**校验(摘要)**:名称长度 **1~20**;`standard_type` 非空且为资讯类别有效编码(**2.2**);简介 ≤50 字;正文后缀白名单 **`pdf`/`md`/`doc`/`docx`/`xls`/`xlsx`/`pptx`** 与 ≤30MB;封面后缀 **`jpg`/`jpeg`/`png`** 与 ≤10MB;服务端对 MIME/后缀二次校验(`GrowthSlaughterStandardRules.isContentExtensionAllowed`)
130 130
 
131 131
 ---
132 132
 
@@ -153,3 +153,4 @@ CREATE TABLE `biz_growth_slaughter_standard` (
153 153
 | --- | --- |
154 154
 | — | 初稿:结构对齐疫病诊疗标准技术方案;业务对齐本目录功能需求;名称 **1~20**;`standard_type` 为 **1/2** |
155 155
 | 2026-05-20 | `standard_type` 改为 `varchar(32)` 资讯类别编码;迁移脚本 `biz_growth_slaughter_standard_alter_standard_type.sql` |
156
+| 2026-05-20 | 正文附件白名单:`pdf/md/doc/docx/xls/xlsx/pptx`(不含 `ppt`);`md` 经 `/common/upload` 全局白名单放行 |

File diff suppressed because it is too large
+ 3 - 2
doc/养殖标准体系/生长与出栏标准/生长与出栏标准管理测试用例.md


+ 1 - 1
doc/牧业养殖科技服务/综合牧业知识库/综合牧业知识库前端技术方案.md

@@ -55,7 +55,7 @@
55 55
 | 知识主题 | `1`~`5`:饲养管理、疫病管理、设备选型、牧场设计、政策解读 |
56 56
 | 标题 | 1~20 字 |
57 57
 | 简介 | 选填,≤50 字 |
58
-| 知识内容 | pdf/md/doc/docx/xls/xlsx/ppt/pptx,≤30MB;`/common/upload` → `contentFileUrl`、`contentFilePath`、`contentFileName` |
58
+| 知识内容 | **服务端白名单**:`pdf`/`md`/`doc`/`docx`/`xls`/`xlsx`/`pptx`,≤30MB;`/common/upload` → `contentFileUrl`、`contentFilePath`、`contentFileName`。**说明**:页面 `contentFileExts` 本次未同步,**保存以服务端校验为准** |
59 59
 
60 60
 ---
61 61
 

+ 2 - 1
doc/牧业养殖科技服务/综合牧业知识库/综合牧业知识库技术方案.md

@@ -133,7 +133,7 @@ CREATE TABLE `biz_livestock_knowledge` (
133 133
 | `knowledgeTitle` | 必填,trim 后长度 1~20 |
134 134
 | `knowledgeTopic` | 必填,`∈ {1,2,3,4,5}` |
135 135
 | `introduction` | 选填,≤50 字 |
136
-| 正文附件 | 必填;后缀 `pdf,md,doc,docx,xls,xlsx,ppt,pptx`;≤30MB(上传阶段 + 保存前二次校验) |
136
+| 正文附件 | 必填;后缀 `pdf,md,doc,docx,xls,xlsx,pptx`;≤30MB(上传阶段 + 保存前二次校验,`LivestockKnowledgeRules.isContentExtensionAllowed`) |
137 137
 
138 138
 ### 3.3 业务错误(`msg` 示例)
139 139
 
@@ -177,3 +177,4 @@ CREATE TABLE `biz_livestock_knowledge` (
177 177
 | 版本 | 说明 |
178 178
 | --- | --- |
179 179
 | 1.0 | 初稿:对齐功能需求 v2.0;单表 `biz_livestock_knowledge`;仅 `kb_sync_status` 无发布态;7 个 REST 接口 |
180
+| 1.1 | **2026-05-20**:正文白名单 `pdf/md/doc/docx/xls/xlsx/pptx`(不含 `ppt`);`md` 经 `/common/upload` 全局白名单放行 |

+ 2 - 1
doc/牧业养殖科技服务/综合牧业知识库/综合牧业知识库测试用例.md

@@ -25,7 +25,7 @@
25 25
 | ZCZX-ZHMYZSK-UT-001 | 参数校验 | 知识标题长度 | 单元测试 | JUnit5 | §5.2 | 无 | trim 后「」、1 字、20 字、21 字 | 空/21 失败;1~20 通过 |
26 26
 | ZCZX-ZHMYZSK-UT-002 | 参数校验 | 知识简介长度 | 单元测试 | JUnit5 | §5.2 | 无 | null/空串;50 字;51 字 | 空通过;51 字失败 |
27 27
 | ZCZX-ZHMYZSK-UT-003 | 参数校验 | 知识主题枚举 | 单元测试 | JUnit5 | §2.2 | 无 | `knowledgeTopic` 为 0、6、1~5 | 0/6 失败;1~5 通过 |
28
-| ZCZX-ZHMYZSK-UT-004 | 参数校验 | 正文后缀白名单 | 单元测试 | JUnit5 | §5.2 | 无 | `.pdf`、`.md`、`.exe`、无后缀 | pdf/md 等通过;exe 失败 |
28
+| ZCZX-ZHMYZSK-UT-004 | 参数校验 | 正文后缀白名单 | 单元测试 | JUnit5 | §5.2 | 无 | `a.pdf`、`readme.md`、`slides.pptx` 通过;`.ppt`、`.exe` 失败 | 与需求一致 |
29 29
 | ZCZX-ZHMYZSK-UT-005 | 参数校验 | 正文必填 | 单元测试 | JUnit5 | §5.2 | 无 | 缺 `contentFileUrl`/`contentFilePath`/`contentFileName` | 失败 |
30 30
 | ZCZX-ZHMYZSK-UT-006 | 入库状态 | 仅 0/1 合法 | 单元测试 | JUnit5 | §2.3 | 无 | 校验 `kb_sync_status` 为 -1、2、0、1 | 仅 0、1 为业务合法值 |
31 31
 | ZCZX-ZHMYZSK-UT-007 | 状态规则 | 可编辑 | 单元测试 | JUnit5 | §6 | 无 | `canEdit(kb=0)`;`canEdit(kb=1)` | 仅未入库 true |
@@ -150,3 +150,4 @@ use: {
150 150
 | 版本 | 说明 |
151 151
 | --- | --- |
152 152
 | 1.0 | 初稿:覆盖入库状态机、校验、同步/移出/删改禁忌;UT 22 + API 30 + UI 27 |
153
+| 1.1 | **2026-05-20**:正文白名单 `pdf/md/doc/docx/xls/xlsx/pptx`(不含 `ppt`);**ZCZX-ZHMYZSK-UT-004** 预期同步 |

+ 1 - 1
doc/牧业养殖科技服务/综合牧业知识库/综合牧业知识库管理功能需求-草稿.md

@@ -2,7 +2,7 @@
2 2
 
3 3
 
4 4
 
5
-1. 新增知识条目:知识标题:不能为空,长度 1–20;知识主题:饲养管理/疫病管理/设备选型/牧场设计/政策解读,必填,支持单选;知识简介:限制50字内;知识内容:必填,支持后缀名为pdf、md、doc、docx、xls、xlsx、ppt,pptx等非结构化文档单选上传,文件大小30M以内。
5
+1. 新增知识条目:知识标题:不能为空,长度 1–20;知识主题:饲养管理/疫病管理/设备选型/牧场设计/政策解读,必填,支持单选;知识简介:限制50字内;知识内容:必填,支持后缀名为 pdf、md、doc、docx、xls、xlsx、pptx 等非结构化文档单选上传,文件大小30M以内。
6 6
 2. 查询知识条目列表:支持关键字(知识标题/知识简介)模糊匹配、知识主题精确匹配分页列出知识条目列表。
7 7
 3. 修改知识条目:表单字段均可修改。
8 8
 4. 删除知识条目:删除数据,并通知知识库删除该知识条目。

+ 3 - 2
doc/牧业养殖科技服务/综合牧业知识库/综合牧业知识库管理功能需求.md

@@ -164,7 +164,7 @@ flowchart TD
164 164
 | 知识标题 | **必填**;**1~20** 字 |
165 165
 | 知识主题 | **必填**;**单选**;取值 **§2.2** 五类之一 |
166 166
 | 知识简介 | **选填**;**≤50** 字 |
167
-| 知识内容 | **必填**;**单文件**上传;允许后缀:**pdf、md、doc、docx、xls、xlsx、ppt、pptx**;**≤30MB** |
167
+| 知识内容 | **必填**;**单文件**上传;允许后缀:**pdf、md、doc、docx、xls、xlsx、pptx**;**≤30MB** |
168 168
 | 初始状态 | **未入库** |
169 169
 
170 170
 **通用校验:**
@@ -262,7 +262,7 @@ flowchart TD
262 262
 | 场景 | 示例文案 |
263 263
 | --- | --- |
264 264
 | 必填/超长 | 「请填写【知识标题】」「【知识简介】不能超过 50 字」 |
265
-| 附件 | 「请上传知识内容」「仅支持 pdf/md/doc/docx/xls/xlsx/ppt/pptx,且不超过 30MB」 |
265
+| 附件 | 「请上传知识内容」「仅支持 pdf/md/doc/docx/xls/xlsx/pptx,且不超过 30MB」 |
266 266
 | 入库态 | 「已入库条目请先移出知识库后再操作」「该条目已入库」「仅已入库条目可移出知识库」 |
267 267
 | 同步/移出失败 | 「同步知识库失败:{原因}」「移出知识库失败:{原因}」 |
268 268
 
@@ -282,3 +282,4 @@ flowchart TD
282 282
 | 版本 | 说明 |
283 283
 | --- | --- |
284 284
 | 2.0 | 依据草稿与原型重写:入库状态机、操作矩阵、流程图;明确无发布/下架;未入库可编删、已入库仅查看与移出;剔除技术栈与接口表述 |
285
+| 2.1 | **2026-05-20**:知识内容正文白名单调整为 `pdf`、`md`、`doc`、`docx`、`xls`、`xlsx`、`pptx`(不含 `ppt`);与 `LivestockKnowledgeRules` 一致;前端 `contentFileExts` 本次不改 |