Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
I
integrity_risk_prevention
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
David Yang
integrity_risk_prevention
Commits
047c5da4
Commit
047c5da4
authored
Sep 28, 2026
by
drigle
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: archive department control item snapshots
parent
4c6749a4
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
41 additions
and
10 deletions
+41
-10
IntegrityRiskService.js
src/pages/integrity_risk_prevention/IntegrityRiskService.js
+25
-3
integrity-risk-prevention.business-flow.md
...isk_prevention/integrity-risk-prevention.business-flow.md
+7
-3
subjectsDefinition.md
src/services/subjectsDefinition.md
+9
-4
No files found.
src/pages/integrity_risk_prevention/IntegrityRiskService.js
View file @
047c5da4
...
@@ -540,6 +540,23 @@ function normalizeDepartmentArchiveItem(item) {
...
@@ -540,6 +540,23 @@ function normalizeDepartmentArchiveItem(item) {
};
};
}
}
function
assertProcessArchiveDepartmentField
(
subject
)
{
const
field
=
(
subject
?.
fields
||
[]).
find
(
(
candidate
)
=>
candidate
?.
name
===
DEPARTMENT_CONTROL_ITEMS_FIELD
,
);
const
nestedSubject
=
field
?.
settings
?.
subject
;
if
(
field
?.
type
!==
'subject'
||
field
?.
multiple
!==
true
||
nestedSubject
!==
INTEGRITY_RISK_SUBJECTS
.
departmentItem
)
{
throw
new
Error
(
'过程表归档对象的“部门填报明细”字段配置不正确,请确认 department_control_items '
+
'为多值 Subject,并指向 risk_prevention_control_measures_table_department_item。'
,
);
}
}
function
showArchiveRecord
(
record
)
{
function
showArchiveRecord
(
record
)
{
const
metadata
=
record
?.
metadata
||
{};
const
metadata
=
record
?.
metadata
||
{};
return
{
return
{
...
@@ -592,9 +609,14 @@ async function createArchiveBatch({ records, historySubject, mapRecord, referenc
...
@@ -592,9 +609,14 @@ async function createArchiveBatch({ records, historySubject, mapRecord, referenc
export
async
function
archiveProcessRecords
(
records
)
{
export
async
function
archiveProcessRecords
(
records
)
{
const
recordIds
=
normalizeIds
(
records
);
const
recordIds
=
normalizeIds
(
records
);
const
latestRecords
=
recordIds
.
length
>
0
if
(
recordIds
.
length
===
0
)
{
?
await
Promise
.
all
(
recordIds
.
map
((
id
)
=>
loadRecord
(
id
)))
throw
new
Error
(
'请先选择需要归档的记录。'
);
:
[];
}
const
[
archiveSubject
,
latestRecords
]
=
await
Promise
.
all
([
loadSubject
(
INTEGRITY_RISK_SUBJECTS
.
processArchive
),
Promise
.
all
(
recordIds
.
map
((
id
)
=>
loadRecord
(
id
))),
]);
assertProcessArchiveDepartmentField
(
archiveSubject
);
return
createArchiveBatch
({
return
createArchiveBatch
({
records
:
latestRecords
,
records
:
latestRecords
,
historySubject
:
INTEGRITY_RISK_SUBJECTS
.
processArchive
,
historySubject
:
INTEGRITY_RISK_SUBJECTS
.
processArchive
,
...
...
src/pages/integrity_risk_prevention/integrity-risk-prevention.business-flow.md
View file @
047c5da4
...
@@ -61,8 +61,10 @@
...
@@ -61,8 +61,10 @@
公式结果时同样必须显式使用
`calculated=true`
。
公式结果时同样必须显式使用
`calculated=true`
。
13.
措施库
`measure_description`
的真实定义已确认只包含
`description`
一个文本字段,
13.
措施库
`measure_description`
的真实定义已确认只包含
`description`
一个文本字段,
导入、导出、归档均以
`metadata.description`
作为措施正文。
导入、导出、归档均以
`metadata.description`
作为措施正文。
14.
过程表归档对象
`risk_prevention_control_measures_table_archive`
的主对象快照定义已确认包含
14.
过程表归档对象
`risk_prevention_control_measures_table_archive`
已确认包含 23 个字段,
22 个字段;归档业务在此基础上同时保留对应的
`department_control_items[]`
子对象快照。
其中
`department_control_items`
是多值嵌套 Subject,指向
`risk_prevention_control_measures_table_department_item`
;归档时同时保存主对象字段和
`department_control_items[]`
子对象快照。
主对象部分的多值字段在快照中保存为展示文本,制度引用和用户字段仍写
`_id[]`
。
主对象部分的多值字段在快照中保存为展示文本,制度引用和用户字段仍写
`_id[]`
。
15.
展示表归档对象
`risk_prevention_control_measures_table_show_archive`
的真实定义已确认包含
15.
展示表归档对象
`risk_prevention_control_measures_table_show_archive`
的真实定义已确认包含
18 个字段;制度名称、子公司制度、责任单位和涉及范围均保存展示文本,不写引用或用户 ID。
18 个字段;制度名称、子公司制度、责任单位和涉及范围均保存展示文本,不写引用或用户 ID。
...
@@ -186,7 +188,9 @@
...
@@ -186,7 +188,9 @@
过程表主对象当前业务数据,以及该记录当时的
过程表主对象当前业务数据,以及该记录当时的
`metadata.department_control_items[]`
子对象完整数据(包括各部门原始业务字段、人员、
`metadata.department_control_items[]`
子对象完整数据(包括各部门原始业务字段、人员、
权限范围、审批状态、流程主单/待办 ID 和时间字段)。归档只创建快照,不删除过程表原记录,
权限范围、审批状态、流程主单/待办 ID 和时间字段)。归档只创建快照,不删除过程表原记录,
也不把主对象的人工修改反写到部门子项。
也不把主对象的人工修改反写到部门子项。部门明细作为嵌套值写入归档记录,不引用原过程表
或原部门子项;归档前会校验该字段为多值 Subject 且指向正确的部门明细 Subject,配置不符时
终止归档并显示错误,避免静默丢失部门快照。
## 4. 展示表操作
## 4. 展示表操作
...
...
src/services/subjectsDefinition.md
View file @
047c5da4
...
@@ -108,7 +108,7 @@ type Record = {
...
@@ -108,7 +108,7 @@ type Record = {
|
`risk_prevention_control_measures_table`
| 廉洁风险防控过程表 | 普通业务字段写入
`metadata`
;用户和引用字段只写 ID |
|
`risk_prevention_control_measures_table`
| 廉洁风险防控过程表 | 普通业务字段写入
`metadata`
;用户和引用字段只写 ID |
|
`risk_prevention_control_measures_table_show`
| 供汇总、展示和导出的展示表 | 由过程表 Excel 导入替换;字段仍写入
`metadata`
|
|
`risk_prevention_control_measures_table_show`
| 供汇总、展示和导出的展示表 | 由过程表 Excel 导入替换;字段仍写入
`metadata`
|
|
`measure_description`
| 当前防控措施库 |
`metadata.description`
保存措施文本 |
|
`measure_description`
| 当前防控措施库 |
`metadata.description`
保存措施文本 |
|
`risk_prevention_control_measures_table_archive`
| 过程表历史快照 |
引用/用户字段只写 ID,其他字段保存归档时值
|
|
`risk_prevention_control_measures_table_archive`
| 过程表历史快照 |
保存主对象字段和
`department_control_items[]`
嵌套快照;引用/用户字段只写 ID
|
|
`risk_prevention_control_measures_table_show_archive`
| 展示表历史快照 | 保存展示表字段快照 |
|
`risk_prevention_control_measures_table_show_archive`
| 展示表历史快照 | 保存展示表字段快照 |
|
`measure_description_history`
| 措施库历史快照 |
`metadata.description`
保存措施文本 |
|
`measure_description_history`
| 措施库历史快照 |
`metadata.description`
保存措施文本 |
|
`integrity_risk_control_archive`
| 归档批次 | 通过引用 ID 数组关联三类历史快照 |
|
`integrity_risk_control_archive`
| 归档批次 | 通过引用 ID 数组关联三类历史快照 |
...
@@ -193,11 +193,12 @@ type Record = {
...
@@ -193,11 +193,12 @@ type Record = {
### 3.1.3 `risk_prevention_control_measures_table_archive` 字段
### 3.1.3 `risk_prevention_control_measures_table_archive` 字段
本次提供的真实定义包含 2
2
个字段,所有字段
`required`
、
`primary`
、
`search.enabled`
本次提供的真实定义包含 2
3
个字段,所有字段
`required`
、
`primary`
、
`search.enabled`
和
`aggregation.enabled`
均为
`false`
。字段值写入时均放入
`metadata`
。
和
`aggregation.enabled`
均为
`false`
。字段值写入时均放入
`metadata`
。
过程表归档对象保存归档时快照。与过程表相比,部分过程表多选展示字段在快照中为
过程表归档对象保存归档时快照。与过程表相比,部分过程表多选展示字段在快照中为
`text`
单值字段;制度和用户字段仍保留为多值引用/用户字段。
`text`
单值字段;制度和用户字段仍保留为多值引用/用户字段。部门填报明细以嵌套
Subject 数组保存归档时的完整值,不引用原过程表记录。
| 字段标签 | 字段别名 | 字段类型 | 默认值 | 多值 | 设置/选项 |
| 字段标签 | 字段别名 | 字段类型 | 默认值 | 多值 | 设置/选项 |
| --- | --- | --- | --- | --- | --- |
| --- | --- | --- | --- | --- | --- |
...
@@ -223,6 +224,7 @@ type Record = {
...
@@ -223,6 +224,7 @@ type Record = {
| 类别 |
`type`
| select |
`null`
| 否 | 选项:
`鑫元基金`
、
`鑫沅资产`
|
| 类别 |
`type`
| select |
`null`
| 否 | 选项:
`鑫元基金`
、
`鑫沅资产`
|
| 子公司制度 |
`subsidiary_system`
| reference | 空字符串 | 是 | 引用 Subject:
`subsidiary_system`
|
| 子公司制度 |
`subsidiary_system`
| reference | 空字符串 | 是 | 引用 Subject:
`subsidiary_system`
|
| 子公司制度(补充) |
`subsidiary_system_add`
| text |
`null`
| 否 | |
| 子公司制度(补充) |
`subsidiary_system_add`
| text |
`null`
| 否 | |
| 部门填报明细 |
`department_control_items`
| subject |
`[]`
| 是 | 子对象:
`risk_prevention_control_measures_table_department_item`
|
写入约束:
写入约束:
...
@@ -230,6 +232,7 @@ type Record = {
...
@@ -230,6 +232,7 @@ type Record = {
`involving_positions_or_personnel`
和
`business_unit`
由原值转换为展示文本保存。
`involving_positions_or_personnel`
和
`business_unit`
由原值转换为展示文本保存。
-
`file_name_and_document_number`
和
`subsidiary_system`
只写引用记录
`_id[]`
,不能写完整对象。
-
`file_name_and_document_number`
和
`subsidiary_system`
只写引用记录
`_id[]`
,不能写完整对象。
-
`filled_by`
和
`approved_by`
只写用户
`_id[]`
。
-
`filled_by`
和
`approved_by`
只写用户
`_id[]`
。
-
`department_control_items`
保存完整嵌套快照;其中引用和用户字段归一化为
`_id`
/
`_id[]`
,不保存对原过程表或原部门子项的引用。
-
`risk_level`
是公式字段,由
`probability * hazard_degree`
计算,不应由前端手工写入。
-
`risk_level`
是公式字段,由
`probability * hazard_degree`
计算,不应由前端手工写入。
-
`approval_status`
线上定义未包含
`已驳回`
,但一级审核驳回流程当前会写入该兼容值;后续应以后端 Subject 选项补齐为准。
-
`approval_status`
线上定义未包含
`已驳回`
,但一级审核驳回流程当前会写入该兼容值;后续应以后端 Subject 选项补齐为准。
...
@@ -496,7 +499,7 @@ ID 数组。
...
@@ -496,7 +499,7 @@ ID 数组。
### `risk_prevention_control_measures_table_archive`:廉洁风险防控过程表归档记录
### `risk_prevention_control_measures_table_archive`:廉洁风险防控过程表归档记录
-
类型:
`normal`
-
类型:
`normal`
-
字段数量:2
2
-
字段数量:2
3
| 字段标签 | 字段别名 | 字段类型 | 多值 | 必填 | 主键 | 关联/配置 |
| 字段标签 | 字段别名 | 字段类型 | 多值 | 必填 | 主键 | 关联/配置 |
| --- | --- | --- | --- | --- | --- | --- |
| --- | --- | --- | --- | --- | --- | --- |
...
@@ -522,6 +525,7 @@ ID 数组。
...
@@ -522,6 +525,7 @@ ID 数组。
| 类别 |
`type`
| select | 否 | 否 | 否 | options: 鑫元基金, 鑫沅资产 |
| 类别 |
`type`
| select | 否 | 否 | 否 | options: 鑫元基金, 鑫沅资产 |
| 子公司制度 |
`subsidiary_system`
| reference | 是 | 否 | 否 | Subject: subsidiary_system |
| 子公司制度 |
`subsidiary_system`
| reference | 是 | 否 | 否 | Subject: subsidiary_system |
| 子公司制度(补充) |
`subsidiary_system_add`
| text | 否 | 否 | 否 | |
| 子公司制度(补充) |
`subsidiary_system_add`
| text | 否 | 否 | 否 | |
| 部门填报明细 |
`department_control_items`
| subject | 是 | 否 | 否 | Subject: risk_prevention_control_measures_table_department_item |
### `risk_prevention_control_measures_table_show`:廉洁风险防控措施表(展示)
### `risk_prevention_control_measures_table_show`:廉洁风险防控措施表(展示)
...
@@ -773,6 +777,7 @@ ID 数组。
...
@@ -773,6 +777,7 @@ ID 数组。
-
`risk_prevention_control_measures_table.file_name_and_document_number`
->
`internal_regulation`
-
`risk_prevention_control_measures_table.file_name_and_document_number`
->
`internal_regulation`
-
`risk_prevention_control_measures_table.subsidiary_system`
->
`subsidiary_system`
-
`risk_prevention_control_measures_table.subsidiary_system`
->
`subsidiary_system`
-
`risk_prevention_control_measures_table.department_control_items`
->
`risk_prevention_control_measures_table_department_item`
-
`risk_prevention_control_measures_table.department_control_items`
->
`risk_prevention_control_measures_table_department_item`
-
`risk_prevention_control_measures_table_archive.department_control_items`
->
`risk_prevention_control_measures_table_department_item`
-
`risk_prevention_control_measures_table_department_item.file_name_and_document_number`
->
`internal_regulation`
-
`risk_prevention_control_measures_table_department_item.file_name_and_document_number`
->
`internal_regulation`
-
`risk_prevention_control_measures_table_department_item.subsidiary_system`
->
`subsidiary_system`
-
`risk_prevention_control_measures_table_department_item.subsidiary_system`
->
`subsidiary_system`
-
`risk_prevention_control_measures_table_archive.file_name_and_document_number`
->
`internal_regulation`
-
`risk_prevention_control_measures_table_archive.file_name_and_document_number`
->
`internal_regulation`
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment