# 12.內置卡片[*]
# 通用卡片
# 富文本編輯器
# 功能說明
用于MarkDown格式文本編輯
# 表單
# 功能說明
用于處理單條數據
# 卡片配置
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 列數量 | 將表單縱向分割為多列 | 2 |
| 標題寬度 | 表單字段標題的寬度,單位為px | 120 |
| 標題身略號 | 標題長度過長,是否用省略號代替 | 默認關閉 |
| 文件批量下載 | 表單內的文件是否需要打包下載 | 默認關閉 |
# 組件庫配置
# 添加字段
# 單據抬頭
# 功能說明
配置單據的基本信息
# 卡片配置
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 單據默認名稱EL | 通過EL表達式配置單據的默認名稱,如果配置了單據名稱EL,此配置將不生效 | |
| 單據名稱EL | 通過EL表達式配置單據名稱 | (data.partner?.customer?.docName?:"未知承租人")+"-簽約" |
| 伙伴ID EL | 通過EL表達式配置伙伴ID | data.partner?.customer?.docId |
| 伙伴名稱EL | 通過EL表達式配置伙伴名稱 | data.partner?.customer?.docName |
# 伙伴抬頭
# 功能說明
配置單據的基本信息
# 卡片配置
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 顯示單據編號 | 是否顯示單據編號,默認關閉 | |
| 伙伴名稱EL | 通過EL表達式配置伙伴名稱 | data.partner?.customer?.docName |
# 文件模板
# 功能說明
在文件模板里配置表達式,并上傳至該卡片。導出文件時,根據模板配置的表達式動態賦值
提示
文件模板需要再上傳的word中配置文檔域,位置:插入-文檔部件-域-選擇MergeField-編輯域名
域名寫法示例:
直接取單據中的值:$doc.data.NkCardQuillEditor.html
通過EL方法取值:${doc.htmlArr(${$doc.data.NkCardQuillEditor.html})}
判斷:#if(${contra.getOtherFlag()}) √ #else × #end
# 卡片配置
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 模板項 | 模板的唯一KEY | |
| 描述 | 模板的表述 | |
| 文件模板 | 上傳的文件模板 | |
| 參數 | 導出文件時處理程序需要的參數,自定義 | |
| 導出類型 | 導出的文件類型,pdf或者word | |
| 導出文件時處理程序 | 當賦值不滿足業務需求時,可自定義開發處理程序來處理業務邏輯,自定義的處理程序必須繼承NkAbstractFileTemplateMetadataPreprocessor.java抽象類 |
# 文件模板導出
# 功能說明
文件模板導出卡片是文件模板的升級版,可以導出HTML數據,使用上跟文件模板略有不同
# 卡片配置
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 模板項 | 模板的唯一KEY | |
| 描述 | 模板的表述 | |
| 文件模板 | 上傳的文件模板 | |
| 參數 | 可以自定義參數顯示 | {"value":"${docName}"} |
| 導出類型 | 導出的文件類型,pdf或者word | |
| 導出文件時處理程序 | 當賦值不滿足業務需求時,可自定義開發處理程序來處理業務邏輯,自定義的處理程序必須實現NkCardFileExportPreprocessor.java |
# 模板文檔配置示例
從單據上取值
{{docName}}
{{data.NkForm.name}}
顯示表格數據在卡片上
在表格配置數據來源:{{-data.payment}},每列數據顯示:[key0] [key1]
通過參數字段自定義的數據展示
{{value}}
#如果一個文件模板要生成多個文件,可以在參數字段組裝數組,導出數組數量對應文件數量的文件壓縮包
[{"first":"第一個文檔"},{"first":"第二個文檔"}]
HTML數據展示
{{~data. NkCardQuillEditor.html}}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
其他插件展示
已默認支持的插件:
@ : 圖片
# : 表格,需要TableRenderData數據模型
* : 列表
? : 判斷(區塊對)
/ : 判斷結束符(區塊對(
+ : 嵌套,需要DocxRenderData數據模型
- : 單行循環,LoopRowTableRenderPolicy
= : 多行循環,MultipleRowTableRenderPolicy
~ : HTML,通過三方插件實現 HtmlRenderPolicy
配置:
{
"binds":{
"key": "RenderPolicy",
},
"plugins":{
"tag": "RenderPolicy",
}
}
參數為空時,默認為doc對象
更多配置參考:http://deepoove.com/poi-tl/
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
TIP
由于"@"用來標志圖片轉換,所以我們之前使用的@連接方法的寫法失效了。
如果有要想通過spEL方法展示的數據,可以在參數中預先定義,例如:{"value":"${@date.now()}"}
在模板文檔中直接使用取值
# 交易歷史
# 功能說明
展示該單據所在的業務流,可以快速到達該業務流的其他單據
# 卡片配置
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 空配置 |
# 賬號綁定
# 功能說明
將該伙伴單據綁定已有的系統賬號,可實現用戶權限管理
# 卡片配置
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 空配置 |
# 賬號管理
# 功能說明
創建一個賬號與該單據進行綁定,如果賬號已存在,可直接進行綁定也可修改該賬號的數據再綁定。
提示
綁定后的賬號不能在設置->用戶賬號中進行修改。
# 卡片配置
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 密碼正則表達式 | 通過正則表達式對密碼進行校驗 | |
| 密碼不匹配的提示語 | 密碼校驗不通過提示語 |
# Excel導入
# 功能說明
將線下Excel表格數據導入到線下,根據實際情況,配置是否需要將導入的數據創建為單據。
提示
配置為導入數據時創建單據,該單據必須存在。
# 基礎配置
# 頭部配置
提示
當前卡片的整體配置。
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 單據類型 | 需要生成單據的類型 | DB01 |
| 業務組件規則 | 單行數據的唯一規則,與單據的業務規則進行匹配。不存在新增,存在修改單據 | -- |
| 執行條件 | 該條件下執行導入數據操作 | S002 |
| 成功狀態 | 執行成功之后的單據狀態 | S003 |
| 失敗狀態 | 執行失敗之后的單據狀態 | S004 |
| 觸發計算 | 是否觸發計算 | -- |
# 表格配置
提示
當前卡片單列數據的配置。
| 屬性 | 描述 | 舉例 |
|---|---|---|
| key | 字段的key。如果需要生成單據數據,配置cardKey.fieldKey,如果不需要生成單據數據,配置key即可 | business.month,key0 |
| 描述 | excel表格列名 | 業務合同號 |
| 輸入框 | 數據類型,選擇數據對應的數據類型 | |
| 顯示格式 | 對數據的顯示進行格式話處理 | yyyy-MM-dd HH:mm:ss |
| 真字符 | 對特殊數據類型進行處理。數據類型為單據引用時,配置為單據類型doctype。數據類型為下拉選時,配置顯示格式化 | 單據引用:docType;下拉選:{1: '是',2: '否' } |
| 展示寬度% | 頁面表格當列寬度 | -- |
| 模板寬度 | 下載的模板當列寬度 | -- |
| 導入數據 | 附否需要生成單據數據 | -- |
# 簽署類卡片
# E簽寶-電子簽
# 功能說明
線上合同簽署
提示
調用E簽寶基于文件發起簽署接口。 注意:模板文件內的字體如果沒有,生成的上傳E簽寶文件中文會缺失。需要下載對應字體并放置在服務器上。 服務器路徑:/nk/spring-applications/elcube_ce04/Fonts yml配置:nk.fontFolder: /nk/spring-applications/elcube_ce04/Fonts
# 基礎配置
# 頭部配置
提示
當前卡片的整體配置。
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 簽署觸發狀態 | 什么狀態下觸發簽署 | -- |
| 簽署成功狀態 | 簽署成功單據的狀態 | -- |
| 簽署失敗狀態 | 簽署失敗單據的狀態 | -- |
| 撤銷觸發狀態 | 什么狀態下觸發撤簽 | -- |
| 撤銷成功狀態 | 撤銷成功單據的狀態 | -- |
| 撤銷失敗狀態 | 撤銷失敗單據的狀態 | -- |
| 簽署主題名稱 | 本次簽署的描述 | -- |
| flowInfo參數 | E簽寶基于文件發起簽署接口 | 參考E簽寶基于文件發起簽署 (opens new window)接口參數signFlowConfig詳見例1 |
# 例1
{
"signFlowTitle": "${docName}",
"signFlowExpireTime": 1691056777000,
"autoStart": true,
"autoFinish": true,
"identityVerify": true,
"signConfig": {
"availableSignClientTypes": "1",
"showBatchDropSealButton": true
},
"noticeConfig": {
"noticeTypes": "1",
"examineNotice": false
},
"authConfig": {
"willingnessAuthModes": ["PSN_FACE_ALIPAY"],
"psnAvailableAuthModes": ["PSN_FACE"]
},
"redirectConfig": {
"redirectUrl": "www.xxx.com",
"redirectDelayTime": 3
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 表格配置
提示
簽署模板的詳細配置。
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 模板項 | 模板的KEY | -- |
| 描述 | 模板描述 | -- |
| 文件模板 | 待簽署的文件模板 | -- |
| 導出文件時的處理程序 | 導出文件的處理程序 | -- |
| 簽署條件EL | 什么條件下執行簽署(結果為boolean) | -- |
| 簽署方EL | 參與該模板的簽署方 | 參考E簽寶基于文件發起簽署 (opens new window)接口參數signers詳見列2。平臺方自動簽署autoSign為true,orgId必傳,transactorInfo參數不需要;keywords合同關鍵字,通過關鍵字定位簽字;params合同模板參數) |
# 例2
[
{
"signers": [
{
"psnSignerInfo": {
"psnInfo": {
"psnIDCardType": "CRED_PSN_CH_IDCARD",
"psnIDCardNum": "511XXXXXX0215",
"psnMobile": "185XXXX1989",
"psnName": "李XX"
},
"psnAccount": "185XXXX1989"
},
"signerType": 0,
"noticeConfig": {
"noticeTypes": 1
},
"keywords": "承租人"
},
{
"orgSignerInfo": {
"orgInfo": {
"legalRepName": "謝XX",
"orgIDCardType": "CRED_ORG_USCC",
"legalRepIDCardType": "CRED_PSN_CH_IDCARD",
"legalRepIDCardNum": "33XXXXXXXXX310",
"orgIDCardNum": "91XXXXXXXXXF"
},
"transactorInfo": {
"psnInfo": {
"psnIDCardType": "CRED_PSN_CH_IDCARD",
"psnIDCardNum": "33XXXXXXXXX310",
"psnName": "謝XX"
},
"psnAccount": "159XXXX199"
},
"orgId": "b0XXXXbf"
},
"signerType": 1,
"noticeConfig": {
"noticeTypes": 1
},
"autoSign": true,
"keywords": "公司簽章"
}
],
"params": {
"title": "李XX的合同"
}
},
{
"signers": [
{
"psnSignerInfo": {
"psnInfo": {
"psnIDCardType": "CRED_PSN_CH_IDCARD",
"psnIDCardNum": "511XXXXXXX6995",
"psnMobile": "185XXXX2986",
"psnName": "陳X"
},
"psnAccount": "185XXXX2986"
},
"signerType": 0,
"noticeConfig": {
"noticeTypes": 1
},
"keywords": "承租人"
},
{
"orgSignerInfo": {
"orgInfo": {
"legalRepName": "謝XX",
"orgIDCardType": "CRED_ORG_USCC",
"legalRepIDCardType": "CRED_PSN_CH_IDCARD",
"legalRepIDCardNum": "33XXXXXXXXX310",
"orgIDCardNum": "91XXXXXXXXXXF"
},
"transactorInfo": {
"psnInfo": {
"psnIDCardType": "CRED_PSN_CH_IDCARD",
"psnIDCardNum": "33XXXXXXXXX310",
"psnName": "謝XX"
},
"psnAccount": "159XXXX1199"
},
"orgId": "b0XXXXebf"
},
"signerType": 1,
"noticeConfig": {
"noticeTypes": 1
},
"autoSign": true,
"keywords": "公司簽章"
}
],
"params": {
"title": "陳X的合同"
}
}
]
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# E簽寶-身份認證
提示
調用E簽寶個人(企業)核身認證接口。
# 功能說明
實名認證
# 基礎配置
# 基礎配置
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 觸發狀態 | 該狀態下觸發實名認證 | -- |
| 成功狀態 | 認證成功單據的狀態 | -- |
| 失敗狀態 | 認證失敗單據的狀態 | -- |
| 用戶類型 | 個人用戶1;企業用戶2 | -- |
# 個人認證
提示
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 認證方式 | 指定頁面顯示認證方式PSN_BANK4_AUTHCODE - 個人銀行卡四要素認證,PSN_TELECOM_AUTHCODE - 個人運營商三要素認證,PSN_FACEAUTH_BYURL - 個人刷臉認證 | {'PSN_TELECOM_AUTHCODE'} |
| 認證詳情 | 指定通過銀行卡認證或運營商認證方式時,是否使用詳情版,如指定則核驗失敗可返回具體不匹配信息,傳空默認為普通版。PSN_BANK4_AUTHCODE - 個人銀行卡四要素認證,PSN_TELECOM_AUTHCODE - 個人運營商三要素認證 | -- |
| 通知手機號 | 接收實名認證鏈接短信通知的手機號。 | -- |
| 銀行卡號 | 個人銀行卡號(僅支持銀聯卡) | -- |
| 個人證件號 | 個人證件號 | -- |
| 證件類型 | 個人證件類型,INDIVIDUAL_CH_IDCARD - 中國大陸身份證,INDIVIDUAL_CH_TWCARD - 臺灣來往大陸通行證,INDIVIDUAL_CH_HONGKONG_MACAO - 港澳來往大陸通行證,INDIVIDUAL_PASSPORT - 護照 | -- |
| 手機號 | 個人手機號 | -- |
| 姓名 | 個人姓名 | -- |
# 企業認證
提示
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 認證方式 | 指定頁面可選的認證方式,ORG_BANK_TRANSFER - 組織機構對公賬戶打款認證,ORG_ZM_AUTHORIZE - 企業芝麻認證,ORG_LEGAL_AUTHORIZE - 組織機構法定代表人授權書簽署認證,LEGAL_REP_AUTH - 法定代表人認證 | |
| 辦理人認證方式 | 指定頁面可選的辦理人認證方式PSN_TELECOM_AUTHCODE - 個人運營商三要素,PSN_BANK4_AUTHCODE - 個人銀行四要素,PSN_FACEAUTH_BYURL - 個人刷臉認證 | |
| 返回詳情的認證方式 | 指定辦理人通過銀行卡認證或運營商認證方式時,是否使用詳情版,如指定則核驗失敗可返回具體不匹配信息,傳空默認為普通版。PSN_BANK4_AUTHCODE - 個人銀行卡四要素認證,PSN_TELECOM_AUTHCODE - 個人運營商三要素認證 | -- |
| 通知手機號 | 接收實名認證鏈接短信通知的手機號。 | -- |
| 機構名稱 | -- | |
| 機構證件號 | -- | |
| 法人證件類型 | 證件類型,INDIVIDUAL_CH_IDCARD - 中國大陸身份證,INDIVIDUAL_CH_TWCARD - 臺灣來往大陸通行證,INDIVIDUAL_CH_HONGKONG_MACAO - 港澳來往大陸通行證,INDIVIDUAL_PASSPORT - 護照 | -- |
| 法人證件號 | -- | |
| 法人姓名 | -- | |
| 辦理人姓名 | -- | |
| 辦理人證件號 | -- | |
| 機構類型 | 1 - 企業類,2 - 個體工商戶 ,99 - 其他組織 | -- |
# 公共配置
提示
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 不可修改信息 | 企業(指定頁面上不可修改的信息屬性,未指定的信息屬性可以修改。name - 組織機構名稱,certNo - 組織機構證件號,legalRepName - 法定代表人姓名,legalRepCertNo - 法定代表人身份證號,agentName - 辦理人姓名,agentIdNo - 辦理人證件號);個人(設置個人認證頁面上不可修改的基本信息。傳空表示可以修改,name - 姓名,certNo - 證件號,mobileNo - 手機號,bankCardNo - 銀行卡號) | -- |
| 跳轉地址 | 認證結束后頁面跳轉地址 | -- |
| 結果頁展示 | 認證完成是否顯示結果頁,默認值為 true,true - 顯示結果,false - 不顯示結果 | -- |
# 卡片配置源碼
{
"touchState": "NEW",
"successState": "ACTI",
"failState": "REFU",
"typeSpEL": null,
"psnInfo": {
"availableAuthTypesSpEL": "{'PSN_TELECOM_AUTHCODE'}",
"receiveUrlMobileNoSpEL": "\"185XXXX1989\"",
"authAdvancedEnabledSpEL": null,
"indivInfo": {
"bankCardNoSpEL": null,
"certNoSpEL": "\"51XXXXXXXXX15\"",
"certTypeSpEL": null,
"mobileNoSpEL": "\"185XXXX1989\"",
"nameSpEL": "\"李XX\""
}
},
"orgInfo": {
"availableAuthTypesSpEL": "{\"LEGAL_REP_AUTH\"}",
"agentAvailableAuthTypesSpEL": "{\"PSN_TELECOM_AUTHCODE\"}",
"agentAuthAdvancedEnabledSpEL": null,
"receiveUrlMobileNoSpEL": "\"159XXXX1199\"",
"orgEntity": {
"nameSpEL": "\"XXXXXXX公司\"",
"certNoSpEL": "\"91XXXXXXF\"",
"legalRepCertTypeSpEL": "\"INDIVIDUAL_CH_IDCARD\"",
"legalRepCertNoSpEL": "\"33XXXXXXX10\"",
"legalRepNameSpEL": "\"謝XX\"",
"agentNameSpEL": "\"謝XX\"",
"agentIdNoSpEL": "\"33XXXXXXX10\"",
"organizationTypeSpEL": "1"
}
},
"configParams": {
"indivUneditableInfoSpEL": null
},
"contextInfo": {
"contextIdSpEL": null,
"notifyUrl": null,
"origin": null,
"redirectUrl": null,
"showResultPageSpEL": "true"
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# 數據類卡片
# 第三方數據查詢
# 功能說明
查詢第三方數據庫,并將數據保存到本服務
# 第三方數據查詢配置
# yml配置
| 屬性 | 描述 | 舉例 |
|---|---|---|
| nk.datax.services.MySql101Service | MySql101Service是服務名稱,可自行配置 | -- |
| nk.datax.services.MySql101Service.serviceClass | 服務類 | -- |
| nk.datax.services.MySql101Service.dialect | 方言 | -- |
| nk.datax.services.MySql101Service.props.jdbcUrl | 數據庫鏈接地址 | -- |
| nk.datax.services.MySql101Service.props.schema | 模式 | -- |
| nk.datax.services.MySql101Service.props.username | 用戶名 | -- |
| nk.datax.services.MySql101Service.props.password | 密碼 | -- |
| nk.datax.services.MySql101Service.props.driverClassName | 驅動程序 | -- |
示例(代碼)
nk:
datax:
services:
MySql101Service:
serviceClass: cn.nkpro.elcube.components.datax.services.MySQLQueryService
dialect: MySql
props:
jdbcUrl: jdbc:mysql://192.168.1.149:3306/elcube_jiyi?characterEncoding=utf-8&useSSL=false&createDatabaseIfNotExist=true
schema: elcube_jiyi
username: root
password: VTOZ8clUpSerX6hI
driverClassName: com.mysql.jdbc.Driver
2
3
4
5
6
7
8
9
10
11
12
# 卡片配置
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 查詢服務 | 本次查詢調用的服務 | -- |
| SQL | 本次查詢執行的SQL表達式 | -- |
| 數據源 | 本次查詢結果需要的數據 | -- |
| 數據映射 | 對數據源進行數據映射,映射到其他卡片上 | -- |
示例(源碼)
{
"items": [
{
"queryService": "MySql101Service",
"sqlSpEL": "SELECT DOC_ID docId FROM nk_doc_h where CREATED_TIME >= 1655865552",
"datasourceSpEL": "#this",
"mappingSpEL": "{\n\"data.grid\":#this\n}",
"_X_ROW_KEY": "row_1819"
},
{
"queryService": "MySql101Service",
"sqlSpEL": "SELECT DOC_ID docId FROM nk_doc_h where CREATED_TIME >= 1655865552",
"datasourceSpEL": "#this?.^[true]",
"mappingSpEL": "{\"data.NkDynamicForm.key1\":#this.docId}",
"_X_ROW_KEY": "row_1820"
}
]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 表格選擇器
# 功能說明
1.通過配置,對數據進行查詢、過濾和展示。查詢字段需和表格字段保持一致
2.單據計算時觸發
3.保存后只展示選中的數據
# 配置說明
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 模式 | 單選或多選 | |
| 查詢服務 | 選擇需要查詢的庫 | 詳見查詢服務說明 |
| SQL | 查詢語句 | es庫查詢:select docName from document |
| 數據過濾 | es數據過濾語法 | 詳見es查詢聚合語法示例 |
| 默認選中 | 從0開始,逗號分割 | 0,2,5,默認選中第1,3,6條 |
# 查詢服務說明
| 屬性 | 描述 | 舉例 |
|---|---|---|
| ElasticSearchSQLService | 使用es的sql語法查詢數據 | 詳見es查詢sql語法示例 |
| ElasticSearchAggService | 使用es的聚合語法查詢數據 | 詳見es查詢聚合語法示例 |
| MySQLQueryService | mysql數據庫查詢 | select * from 表名 |
| MySql101Service | 第三方庫查詢 | 詳見第三方庫連接配置 |
# 第三方庫連接配置
datax:
services:
MySql101Service:
serviceClass: cn.nkpro.elcube.components.datax.services.MySQLQueryService
dialect: MySql
props:
jdbcUrl: jdbc:mysql://ip:端口/庫名?characterEncoding=utf-8&useSSL=false&createDatabaseIfNotExist=true
schema: ts5_bb_preview
username: root
password: VTOZ8clUpSerX6hI
driverClassName: com.mysql.jdbc.Driver
2
3
4
5
6
7
8
9
10
11
# es查詢sql語法示例
SELECT HISTOGRAM(createdTime, INTERVAL 1 DAY) AS "時間",
SUM(dynamics.loanAmount_double) AS "金額"
FROM "<document>"
WHERE docType = 'RBC1' AND docState = 'ACTI'
GROUP BY "時間"
2
3
4
5
# es查詢聚合語法示例
{
"bool": {
"must": [
{
"terms": {
"docType": [
"RPF1"
]
}
},
{
"range": {
"dynamics.downPaymentFrom_double": {
"lte": "${data?.programme?.downPaymentPercent?:-1}"
}
}
},
{
"range": {
"dynamics.downPaymentTo_double": {
"gte": "${data?.programme?.downPaymentPercent?:10000}"
}
}
},
{
"range": {
"dynamics.termFrom_double": {
"lte": "${data?.programme?.term?:-1}"
}
}
},
{
"range": {
"dynamics.termTo_double": {
"gte": "${data?.programme?.term?:10000}"
}
}
},
{
"range": {
"dynamics.ageFrom_int": {
"lte": "${data?.customer?.age?:-1}"
}
}
},
{
"range": {
"dynamics.ageTo_int": {
"gte": "${data?.customer?.age?:10000}"
}
}
},
{
"terms": {
"dynamics.regions_keyword": "${data?.customer?.region?:{}}"
}
}
]
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# 財務相關卡片
# 還款規則
# 功能說明
變更還款計劃
# 字段說明
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 程序 | 規則變更選擇 | 延期,固定金額,調整期限,調整利率,調整還款日,按貸款比例 |
| 激活日期 | 規則變更起始時間 | |
| 有效期間 | 規則變更有效區間 | |
| 期次自 | 規則變更起始期次 | |
| 期次至 | 規則變更結束期次 | |
| 值 | 根據變更規則填寫數值 | 規則不同,所填值不同,例 |
# 變更規則說明
| 規則名稱 | 描述 | 舉例 |
|---|---|---|
| 延期 | 延長還款期限 | |
| 固定金額 | 從激活日起,根據有效期間或期次區間,將付款金額變更為所填值 | |
| 調整期限 | 從激活日起,變更還款計劃后續總期次為所填期數 | |
| 調整利率 | 從激活日起,根據所填利率,重新計算還款計劃 | |
| 調整還款日 | 從激活日起,有效期間內,變更還款計劃還款日 | |
| 按貸款比例 | 從激活日起,根據期次區間和貸款比例,變更還款計劃 |
# 卡片配置
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 計算公式 | 金融方案中配置的還款計劃計算方法 | |
| 自動添加EL | 根據配置EL,在觸發計算時,自動填充還款規則 |
# 示例
初始化EL,提前結清配置
[
{
"program": "PAY_DT",
"activeDate": "${@date.now()}",
"effectiveDate": [
"${@date.now()}",
"${@date.now()}"
]
},
{
"program": "EXTEND",
"activeDate": "${data?.earlySett?.date?:0}",
"value": "1"
}
]
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 還款計劃
# 功能說明
自動計算并展示還款計劃
# 字段說明
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 期次 | 還款計劃第幾期 | |
| 到期 | 應還款日 | |
| 付款金額 | 本金+利息+其他費用 | |
| 本金 | 應還本金 | |
| 利息 | 應還利息 | |
| 其他費用 | 其他應收費用 | |
| 剩余金額 | 剩余未還本金 | |
| 備注 | 備注信息 |
# 卡片配置
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 計算公式 | 還款計劃計算方式,找到對應計算類 | 等額本息,等額本金 |
| 計算選項 | 還款計劃計算傳入值 |
# 示例
計算傳值示例
{
"pv": "${data.price?.loanAmount}",
"ir": "${(data.price?.rateAfterDiscount?:0)*0.01}",
"np": "${(data.programme?.term?:12)/12*(data.programme?.frequency?:12)}",
"pf": "${data.programme?.frequency}",
"dt": "${data?.startRent?.loanDate}",
"dayOfPay": "${data?.startRent?.fixedRepayDate}",
"fv": 0,
"tp": "0",
"customPayAmountRule": "${data.customPayAmountRule}"
}
2
3
4
5
6
7
8
9
10
11
12
# 賬單
# 功能說明
自動計算賬單項,來款核銷記錄
# 字段說明
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 到期日期 | 應還款日期 | |
| 賬單類別 | 應還賬單類型 | 本金,利息,違約金 |
| 賬單金額 | 應還金額 | |
| 已收金額 | 已還金額 | |
| 應收金額 | 剩余應收金額 | |
| 狀態 | 賬單狀態 | 未激活,激活 |
# 卡片配置
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 激活條件 | 賬單改為激活狀態條件 | docState=="ACTI" |
| 賬單交易伙伴 | 賬單所屬交易伙伴 | |
| 還款計劃卡片 | 還款計劃卡片key,賬單根據還款計劃計算得出 | |
| 計息日期 | 開始計息時間 | |
| 賬單源 | 賬單取值來源 | 當還款計劃卡片不為空時,則取還款計劃卡片的數據,其他:首付款,保證金 |
| 違約金起始日 | 可以自定義違約金的計算日期 | 默認是第一期賬單的應收日期 |
| 違約金賬單類別 | 賬單違約金展示取值 | 違約金 |
| 違約金利率 | 賬單逾期,違約金計算利率 | EL表達式,0.05 |
| 計算違約金的賬單類別 | 哪些賬單類別逾期后需要計算違約金 | 本金,利息 |
| 賬單視圖 | 賬單視圖分類,配置包含關系 | |
| 包含過期條目 | 已過期賬單是否展示 | 這里的過期是指discard字段為1的數據 |
| fix當日 | 選中之后,應還款當日就不會出現滯納金的條目 |
# 示例
激活條件
docState=="ACTI"||docState=='SETT'||docState=='VOFF'
賬單源
{
{
"billType":"代償金額",
"fromDate":data.startRent?.loanDate,
"expireDate":data.startRent?.loanDate,
"amount":data.overdue?.overdueAmount
}
}
2
3
4
5
6
7
8
賬單視圖
[
{
"name": "全部"
},
{
"name": "還款視圖",
"includes": [
"本金",
"利息"
]
},
{
"name": "違約金視圖",
"includes": [
"違約金"
]
}
]
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 賬單償還
# 功能說明
核銷賬單已還金額,變更應收金額
# 字段說明
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 單據編號 | 償還賬單單據編號 | |
| 到期日期 | 應還款日期 | |
| 賬單類別 | 應還賬單類型 | 本金,利息,違約金 |
| 賬單金額 | 應還金額 | |
| 已收金額 | 已還金額 | |
| 應收金額 | 剩余應收金額 | |
| 本次償還 | 本次實際償還金額 |
# 卡片配置
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 激活條件 | 激活償還,修改賬單條件 | docState=="ACTI" |
| 逆向償還 | ||
| 可償還金額 | 可用于本次償還的金額 | |
| 記賬日期 | 來款記賬日期 | |
| 償還總額回填 | 計算后的本次償還總額回填到單據字段 | |
| 償還規則組 | 償還條件和順序,從上往下 | |
| 目標單據ID | 指定需要償還的目標單據 |
# 示例
償還規則組
[
[
{
"billType": "違約金",
"condition": "#bill.expireDate < #$accountDate"
}
],
[
{
"billType": "利息"
},
{
"billType": "本金"
}
],
[
{
"billType": "代償金額"
},
{
"billType": "一次性利息"
}
]
]
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 賬單沖紅
# 功能說明
沖紅已核銷金額,賬單核銷下游單據
# 字段說明
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 單據編號 | 沖紅賬單單據編號 | |
| 到期日期 | 應還款日期 | |
| 賬單類別 | 應還賬單類型 | 本金,利息,違約金 |
| 賬單金額 | 應還金額 | |
| 收款金額 | 實際核銷金額 | |
| 收款日期 | 核銷到賬日期 | |
| 沖紅金額 | 本次沖紅金額 |
# 卡片配置
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 激活條件 | 激活沖紅條件 | |
| 前序償還卡片 | 賬單核銷單據償還卡片key | |
| 沖紅金額回填 | 本次沖紅金額回填單據字段 |
# 示例
沖紅配置源碼
{
"activeSpEL": "true",
"repaymentKey": "refund",
"balanceSpEL": "data.base?.amount"
}
2
3
4
5
# 財務憑證卡片
# 財務憑證引擎
# 功能說明
財務憑證金額計算,展示
# 字段說明
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 科目 | 財務科目 | |
| 幣種 | 使用幣種 | |
| 借方金額 | 借方金額 | |
| 貸方金額 | 貸方金額 | |
| 摘要 | 科目說明,輔助核算項 | |
| 現金流量 | 現金流量科目 |
# 卡片配置
| 屬性 | 描述 | 舉例 |
|---|---|---|
| 激活條件 | 卡片展示條件 | |
| 生效條件 | 觸發計算條件 | |
| 憑證類別 | 憑證名稱 | |
| 記賬日期 | 憑證傳送參數 | |
| 會計年度 | 憑證傳送參數 | |
| 會計期間 | 憑證傳送參數 |
# 示例
憑證配置源碼
{
"activeSpEL": "${@ltgContract.getBusinessModel(preDocId)} == 1",
"effectiveSpEL": "docState == 'S002' or docState == 'S003'",
"voucherKind": "收到租金直租憑證",
"accountDateSpEL": "@date.today()",
"accountYearSpEL": "@date.get(1)",
"accountPeriodSpEL": "@date.get(2)+1",
"vars": [
{
"key": "prev",
"valueSpEL": "@doc.detail(preDocId)",
"remark": "取前序單據數據",
"_X_ROW_KEY": "row_127"
},
{
"key": "taxMoney",
"valueSpEL": "${@ltgContract.monthPay(preDocId)}",
"remark": " 合同約定每期還款額 ",
"_X_ROW_KEY": "row_128"
}
],
"items": [
{
"businessKey": null,
"subject": "100399",
"subjectDesc": "銀行存款",
"currType": "CNY",
"category": "D",
"dataSourceSpEL": null,
"targetDocIdSpEL": "preDocId",
"amountSpEL": "#taxMoney",
"explanationSpEL": "\" 合同約定每期還款額\"",
"cashFlowSpEL": "",
"cashFlowSide": 1,
"assists": [
{
"key": "0011",
"valueSpEL": "'601180217'"
}
],
"_X_ROW_KEY": "row_134"
},
{
"businessKey": null,
"subject": "118101",
"subjectDesc": "應收融資租賃款-租賃收款額",
"currType": "CNY",
"category": "C",
"dataSourceSpEL": null,
"targetDocIdSpEL": "preDocId",
"amountSpEL": "#taxMoney",
"explanationSpEL": "\"融資租賃所收到的現金-融資租賃\"",
"cashFlowSpEL": "1115",
"cashFlowSide": 1,
"assists": [
{
"key": "0004",
"valueSpEL": "'00112000002'"
}
],
"_X_ROW_KEY": "row_135"
}
]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64