Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
Y
yifu-mvp
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
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fangxinjiang
yifu-mvp
Commits
77dd2305
You need to sign in or sign up before continuing.
Commit
77dd2305
authored
Oct 15, 2025
by
hongguangwu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
MVP1.7.16-法大大
parent
d73818dd
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
518 additions
and
79 deletions
+518
-79
TEmployeeContractPre.java
...ud/plus/v1/yifu/archives/entity/TEmployeeContractPre.java
+12
-0
TFascTemplateDetail.java
...oud/plus/v1/yifu/archives/entity/TFascTemplateDetail.java
+8
-0
TEmployeeContractPreVo.java
...loud/plus/v1/yifu/archives/vo/TEmployeeContractPreVo.java
+9
-0
FascController.java
...loud/plus/v1/yifu/archives/controller/FascController.java
+43
-63
FascService.java
...yifu/cloud/plus/v1/yifu/archives/service/FascService.java
+10
-0
FascServiceImpl.java
...d/plus/v1/yifu/archives/service/impl/FascServiceImpl.java
+97
-8
FascConstants.java
...yifu/cloud/plus/v1/yifu/archives/utils/FascConstants.java
+5
-0
FascUtil.java
.../com/yifu/cloud/plus/v1/yifu/archives/utils/FascUtil.java
+323
-7
application-dev.yml
.../yifu-archives-biz/src/main/resources/application-dev.yml
+1
-0
TEmployeeContractPreMapper.xml
.../src/main/resources/mapper/TEmployeeContractPreMapper.xml
+7
-1
TFascTemplateDetailMapper.xml
...z/src/main/resources/mapper/TFascTemplateDetailMapper.xml
+2
-0
CacheConstants.java
...oud/plus/v1/yifu/common/core/constant/CacheConstants.java
+1
-0
No files found.
yifu-archives/yifu-archives-api/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/entity/TEmployeeContractPre.java
View file @
77dd2305
...
...
@@ -88,6 +88,7 @@ public class TEmployeeContractPre extends BaseEntity {
@Schema
(
description
=
"法大大模版名称"
)
private
String
fadadaTemplate
;
@Schema
(
description
=
"数据来源1客户端 2客服端"
)
private
String
dataSource
;
...
...
@@ -288,4 +289,15 @@ public class TEmployeeContractPre extends BaseEntity {
@TableField
(
exist
=
false
)
private
List
<
TAttaInfo
>
attaList
;
@Schema
(
description
=
"法大大模版ID"
)
private
String
fadadaTemplateId
;
// 1待发起、5发起失败、7签署失败,可以发起电子签 2025-10-14 18:25:16倩倩
// processStatus = "状态,0待确认,1待发起,2线下签待审核,3线下签审核不通过4线下签待归档5发起失败6签署中7签署失败8电子待归档9已完结10撤销签署")
@Schema
(
description
=
"任务ID"
)
private
String
requestId
;
@Schema
(
description
=
"任务信息"
)
private
String
requestMsg
;
}
yifu-archives/yifu-archives-api/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/entity/TFascTemplateDetail.java
View file @
77dd2305
...
...
@@ -56,6 +56,14 @@ public class TFascTemplateDetail extends BaseEntity {
@ExcelProperty
(
"模板ID"
)
@Schema
(
description
=
"模板ID"
)
private
String
signTemplateId
;
/**
* 法大大文档ID
*/
@ExcelAttribute
(
name
=
"法大大文档ID"
,
maxLength
=
100
)
@Length
(
max
=
100
,
message
=
"法大大文档ID不能超过100个字符"
)
@ExcelProperty
(
"法大大文档ID"
)
@Schema
(
description
=
"法大大文档ID"
)
private
String
fascDocId
;
/**
* 法大大字段
*/
...
...
yifu-archives/yifu-archives-api/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/vo/TEmployeeContractPreVo.java
View file @
77dd2305
...
...
@@ -565,4 +565,13 @@ public class TEmployeeContractPreVo extends RowIndex implements Serializable {
private
String
revokeReason
;
/**
* 法大大模版ID
*/
@Length
(
max
=
50
,
message
=
"法大大模版ID 不能超过50 个字符"
)
@ExcelAttribute
(
name
=
"法大大模版ID"
,
maxLength
=
50
)
@Schema
(
description
=
"法大大模版ID"
)
@ExcelProperty
(
"法大大模版ID"
)
private
String
fadadaTemplateId
;
}
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/controller/FascController.java
View file @
77dd2305
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
archives
.
controller
;
import
com.alibaba.fastjson.JSON
;
import
com.fasc.open.api.exception.ApiException
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.FddReqLog
;
import
com.yifu.cloud.plus.v1.yifu.archives.service.*
;
import
com.yifu.cloud.plus.v1.yifu.common.core.exception.CheckedException
;
import
com.yifu.cloud.plus.v1.yifu.archives.service.FascService
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprUpmsProperties
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.Map
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* @auther huyc
* @date 2022/6/29
*/
@EnableConfigurationProperties
({
DaprUpmsProperties
.
class
})
@RestController
@RequiredArgsConstructor
@RequestMapping
(
"/fasc"
)
...
...
@@ -30,18 +24,6 @@ public class FascController {
@Autowired
private
FascService
fascService
;
@Autowired
private
FddReqLogService
reqLogService
;
@Autowired
private
FddPersonAccountService
fddPersonAccountService
;
@Autowired
private
FddContractInfoService
fddContractInfoService
;
@Autowired
private
FddCompanyInfoService
fddCompanyInfoService
;
@Autowired
private
FddContractAttachInfoService
fddContractAttachInfoService
;
@Autowired
private
TEmployeeContractInfoService
employeeContractInfoService
;
/**
* @param templateName 签署任务模板名称,如果传了该参数,会根据名称模糊匹配查询,长度最大100个字符。
...
...
@@ -51,50 +33,48 @@ public class FascController {
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
@Operation
(
description
=
"获取模板"
)
@GetMapping
(
"/getTemplate"
)
@GetMapping
(
"/getTemplate"
)
public
R
<
String
>
getTemplate
(
@RequestParam
(
required
=
false
)
String
templateName
)
throws
ApiException
{
return
fascService
.
getTemplate
(
templateName
);
}
/**
* 保存请求参数日志
*
* @param request
*/
private
void
saveReqLog
(
HttpServletRequest
request
)
{
Map
<
String
,
String
[]>
parameterMap
=
request
.
getParameterMap
();
FddReqLog
fddReqLog
=
new
FddReqLog
();
fddReqLog
.
setResData
(
JSON
.
toJSONString
(
parameterMap
));
fddReqLog
.
setMethodName
(
Thread
.
currentThread
().
getStackTrace
()[
1
].
getMethodName
());
fddReqLog
.
setClassName
(
Thread
.
currentThread
().
getStackTrace
()[
1
].
getClassName
());
reqLogService
.
save
(
fddReqLog
);
* @param id 合同待签订任务记录表TEmployeeContractPre:id
* @Description: 发起电子签署
* @Author: hgw
* @Date: 2025/10/13 17:24
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
@Operation
(
description
=
"发起电子签署"
)
@GetMapping
(
"/submitContract"
)
public
R
<
String
>
submitContract
(
@RequestParam
String
id
)
throws
ApiException
{
return
fascService
.
submitContract
(
id
);
}
//验证签名
public
void
checkSign
(
HttpServletRequest
request
)
throws
Exception
{
/* Map<String, String> paraMap = new HashMap<>(8);
paraMap.put(GlobalConstants.FDD_APPID, request.getHeader(GlobalConstants.FDD_APPID));
paraMap.put(GlobalConstants.FDD_SIGN_TYPE, request.getHeader(GlobalConstants.FDD_SIGN_TYPE));
paraMap.put(GlobalConstants.FDD_TIMESTAMP, request.getHeader(GlobalConstants.FDD_TIMESTAMP));
paraMap.put(GlobalConstants.FDD_NONCE, request.getHeader(GlobalConstants.FDD_NONCE));
paraMap.put(FDD_EVENT, request.getHeader(FDD_EVENT));
String fddBizContent = request.getParameter(FDD_BIZ_CONTENT);
paraMap.put(FDD_BIZ_CONTENT, fddBizContent);
//得到排序后的字符串,FddCryptUtil为法大大提供得签名工具类
String sortParam = FddCryptUtil.sortParameters(paraMap);
//计算之后得到签名 该签名需要放到请求头
String signature = FddCryptUtil.sign(sortParam, request.getHeader(GlobalConstants.FDD_TIMESTAMP), fddConfigProperties.getAppKey());
if (StringUtils.equals(signature, request.getHeader(GlobalConstants.FDD_API_SIGN))) {
FddReqLog fddReqLog = new FddReqLog();
paraMap.put(GlobalConstants.FDD_TIMESTAMP, request.getHeader(GlobalConstants.FDD_TIMESTAMP));
fddReqLog.setReqData(signature);
fddReqLog.setResData(JSON.toJSONString(paraMap));
fddReqLog.setMethodName(Thread.currentThread().getStackTrace()[1].getMethodName());
fddReqLog.setClassName(Thread.currentThread().getStackTrace()[1].getClassName());
reqLogService.save(fddReqLog);
return;
}*/
throw
new
CheckedException
(
"签名异常"
);
/**
* @param id 合同待签订任务记录表TEmployeeContractPre:id
* @Description: 撤销签署
* @Author: hgw
* @Date: 2025/10/13 17:24
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
@Operation
(
description
=
"撤销签署"
)
@GetMapping
(
"/cancelTask"
)
public
R
<
String
>
cancelTask
(
@RequestParam
String
id
)
throws
ApiException
{
return
fascService
.
cancelTask
(
id
);
}
/**
* @param id 合同待签订任务记录表TEmployeeContractPre:id
* @Description: 催办
* @Author: hgw
* @Date: 2025/10/13 17:24
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
@Operation
(
description
=
"催办"
)
@GetMapping
(
"/urgeTask"
)
public
R
<
String
>
urgeTask
(
@RequestParam
String
id
)
throws
ApiException
{
return
fascService
.
urgeTask
(
id
);
}
}
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/service/FascService.java
View file @
77dd2305
...
...
@@ -32,4 +32,14 @@ public interface FascService extends IService<FddContractInfo> {
// 获取模板
R
<
String
>
getTemplate
(
String
templateName
)
throws
ApiException
;
// 推送法大大任务
R
<
String
>
submitContract
(
String
id
)
throws
ApiException
;
// 撤销签署任务
R
<
String
>
cancelTask
(
String
id
)
throws
ApiException
;
// 催办签署任务
R
<
String
>
urgeTask
(
String
id
)
throws
ApiException
;
}
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/service/impl/FascServiceImpl.java
View file @
77dd2305
...
...
@@ -19,23 +19,18 @@ package com.yifu.cloud.plus.v1.yifu.archives.service.impl;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.fasc.open.api.exception.ApiException
;
import
com.fasc.open.api.v5_1.res.template.SignTemplateListInfo
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.FddContractInfo
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.TFascEditLog
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.TFascTemplate
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.TFascTemplateDetail
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.*
;
import
com.yifu.cloud.plus.v1.yifu.archives.mapper.FddContractInfoMapper
;
import
com.yifu.cloud.plus.v1.yifu.archives.service.*
;
import
com.yifu.cloud.plus.v1.yifu.archives.utils.FascUtil
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.Common
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.log4j.Log4j2
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.*
;
/**
* 法大大专业版
...
...
@@ -54,6 +49,7 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
private
final
TFascPushLogService
tFascPushLogService
;
private
final
TFascTemplateService
tFascTemplateService
;
private
final
TFascTemplateDetailService
tFascTemplateDetailService
;
private
final
TEmployeeContractPreService
tEmployeeContractPreService
;
@Override
public
R
<
String
>
getTemplate
(
String
templateName
)
throws
ApiException
{
...
...
@@ -95,10 +91,14 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
}
// 主表:
TFascTemplate
oldMain
;
String
logId
;
for
(
TFascTemplate
t
:
tList
)
{
oldMain
=
oldMainMap
.
get
(
t
.
getSignTemplateId
());
if
(
oldMain
!=
null
)
{
t
.
setId
(
oldMain
.
getId
());
}
else
{
logId
=
String
.
valueOf
(
UUID
.
randomUUID
()).
replaceAll
(
"-"
,
""
);
t
.
setId
(
logId
);
}
this
.
addFascLogToList
(
t
.
getId
(),
CommonConstants
.
ONE_STRING
,
editContent1
,
logList
);
updateMain
.
add
(
t
);
...
...
@@ -115,6 +115,9 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
oldDetail
=
oldDetailMap
.
get
(
t
.
getSignTemplateId
()
+
CommonConstants
.
DOWN_LINE_STRING
+
t
.
getFascFieldId
());
if
(
oldDetail
!=
null
)
{
t
.
setId
(
oldDetail
.
getId
());
}
else
{
logId
=
String
.
valueOf
(
UUID
.
randomUUID
()).
replaceAll
(
"-"
,
""
);
t
.
setId
(
logId
);
}
this
.
addFascLogToList
(
t
.
getId
(),
CommonConstants
.
TWO_STRING
,
editContent1
,
logList
);
updateDetail
.
add
(
t
);
...
...
@@ -157,4 +160,90 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
}
/**
* @param id TEmployeeContractPre主键
* @Description: 推送法大大任务
* @Author: hgw
* @Date: 2025/10/15 16:40
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
@Override
public
R
<
String
>
submitContract
(
String
id
)
throws
ApiException
{
// templateName 签署任务模板名称
TEmployeeContractPre
contract
=
tEmployeeContractPreService
.
getById
(
id
);
if
(
contract
==
null
)
{
return
R
.
failed
(
"未找到合同"
);
}
if
(
Common
.
isEmpty
(
contract
.
getFadadaTemplateId
()))
{
return
R
.
failed
(
"未找到合同模板ID,请联系管理员"
);
}
if
(
Common
.
isEmpty
(
contract
.
getSignType
()))
{
return
R
.
failed
(
"签署方式为空,请联系管理员"
);
}
else
if
(!
CommonConstants
.
ONE_STRING
.
equals
(
contract
.
getSignType
()))
{
return
R
.
failed
(
"签署方式不是电子签,不可发起电子签署"
);
}
if
(
Common
.
isEmpty
(
contract
.
getProcessStatus
()))
{
return
R
.
failed
(
"合同无状态,请联系管理员"
);
}
else
if
(!
CommonConstants
.
dingleDigitStrArray
[
1
].
equals
(
contract
.
getProcessStatus
())
&&
!
CommonConstants
.
dingleDigitStrArray
[
5
].
equals
(
contract
.
getProcessStatus
())
&&
!
CommonConstants
.
dingleDigitStrArray
[
7
].
equals
(
contract
.
getProcessStatus
()))
{
return
R
.
failed
(
"合同状态不是待发起、发起失败、签署失败,不可发起电子签署!"
);
}
if
(
Common
.
isNotNull
(
contract
.
getRequestId
()))
{
return
R
.
failed
(
"合同已发起,请勿重复发起!"
);
}
// TODO - 判断是否入职超过1个月
R
<
String
>
requestInfo
=
fascUtil
.
submitContract
(
contract
,
tFascPushLogService
,
tEmployeeContractPreService
);
return
requestInfo
;
}
/**
* @param id TEmployeeContractPre主键
* @Description: 撤销签署任务
* @Author: hgw
* @Date: 2025/10/15 16:40
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
@Override
public
R
<
String
>
cancelTask
(
String
id
)
throws
ApiException
{
// templateName 签署任务模板名称
TEmployeeContractPre
contract
=
tEmployeeContractPreService
.
getById
(
id
);
if
(
contract
==
null
)
{
return
R
.
failed
(
"未找到合同"
);
}
if
(
Common
.
isEmpty
(
contract
.
getRequestId
()))
{
return
R
.
failed
(
"无requestId,请检查数据"
);
}
// TODO - 判断什么状态撤销等,需要产品定
return
fascUtil
.
cancelTask
(
contract
,
tFascPushLogService
,
tEmployeeContractPreService
);
}
/**
* @param id TEmployeeContractPre主键
* @Description: 催办签署任务
* @Author: hgw
* @Date: 2025/10/15 17:56
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
@Override
public
R
<
String
>
urgeTask
(
String
id
)
throws
ApiException
{
// templateName 签署任务模板名称
TEmployeeContractPre
contract
=
tEmployeeContractPreService
.
getById
(
id
);
if
(
contract
==
null
)
{
return
R
.
failed
(
"未找到合同"
);
}
if
(
Common
.
isEmpty
(
contract
.
getRequestId
()))
{
return
R
.
failed
(
"无requestId,请检查数据"
);
}
// TODO - 判断什么状态催办等,需要产品定
return
fascUtil
.
urgeTask
(
contract
,
tFascPushLogService
,
tEmployeeContractPreService
);
}
}
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/utils/FascConstants.java
View file @
77dd2305
...
...
@@ -36,5 +36,10 @@ public interface FascConstants {
// 控件类型是印章
String
FIELD_ZHANG_TYPE
=
"corp_seal,corp_seal_cross_page"
;
// 撤销签署失败原因为 已完成签署(处理的同时员工完成签署公司免验证签完成),则更新为签署完成的“待归档”状态。
String
FIELD_REASON
=
"已完成签署"
;
// 超时未签署自行变更为线下签
String
TIME_OUT_REASON
=
"超时未签署自行变更为线下签"
;
//String FIELD_TYPE = "text_single_line,text_multi_line,number,id_card,fill_date,multi_radio,multi_checkbox,picture,select_box,table,verification_code,business_code";
}
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/utils/FascUtil.java
View file @
77dd2305
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
archives
.
utils
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.serializer.SerializerFeature
;
import
com.fasc.open.api.bean.base.BaseRes
;
import
com.fasc.open.api.bean.common.Actor
;
import
com.fasc.open.api.bean.common.OpenId
;
import
com.fasc.open.api.bean.common.TemplateField
;
import
com.fasc.open.api.exception.ApiException
;
import
com.fasc.open.api.v5_1.client.OpenApiClient
;
import
com.fasc.open.api.v5_1.client.ServiceClient
;
import
com.fasc.open.api.v5_1.client.SignTaskClient
;
import
com.fasc.open.api.v5_1.client.TemplateClient
;
import
com.fasc.open.api.v5_1.req.signtask.*
;
import
com.fasc.open.api.v5_1.req.template.GetSignTemplateListReq
;
import
com.fasc.open.api.v5_1.req.template.SignTemplateDetailReq
;
import
com.fasc.open.api.v5_1.req.template.SignTemplateListFilterInfo
;
import
com.fasc.open.api.v5_1.res.service.AccessTokenRes
;
import
com.fasc.open.api.v5_1.res.signtask.CreateSignTaskRes
;
import
com.fasc.open.api.v5_1.res.template.DocumentInfo
;
import
com.fasc.open.api.v5_1.res.template.SignTemplateDetailRes
;
import
com.fasc.open.api.v5_1.res.template.SignTemplateListInfo
;
import
com.fasc.open.api.v5_1.res.template.SignTemplateListRes
;
import
com.yifu.cloud.plus.v1.yifu.archives.config.FascConfig
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeContractPre
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.TFascPushLog
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.TFascTemplate
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.TFascTemplateDetail
;
import
com.yifu.cloud.plus.v1.yifu.archives.service.TEmployeeContractPreService
;
import
com.yifu.cloud.plus.v1.yifu.archives.service.TFascPushLogService
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CacheConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.exception.CheckedException
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.Common
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.DateUtil
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.LocalDateTimeUtils
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.concurrent.TimeUnit
;
import
static
com
.
alibaba
.
fastjson
.
serializer
.
SerializerFeature
.*;
/**
* @Author: hgw
* @Date: 2025-9-25 14:24:53
...
...
@@ -46,6 +59,11 @@ public class FascUtil {
@Autowired
private
FascConfig
fascConfig
;
private
static
final
SerializerFeature
[]
features
=
new
SerializerFeature
[]{
WriteMapNullValue
,
WriteNullNumberAsZero
,
WriteNullListAsEmpty
,
WriteNullStringAsEmpty
,
WriteDateUseDateFormat
};
/**
* @Description: 获取token
* @Author: huyc
...
...
@@ -107,7 +125,7 @@ public class FascUtil {
// 新增推送日志
TFascPushLog
pushLog
=
new
TFascPushLog
();
pushLog
.
setTransReferenceId
(
fascConfig
.
getOpenId
());
pushLog
.
setPushData
(
getSignTemplateListReq
.
toString
(
));
pushLog
.
setPushData
(
JSON
.
toJSONString
(
getSignTemplateListReq
,
features
));
pushLog
.
setTaskStatus
(
CommonConstants
.
ZERO_STRING
);
pushLog
.
setTypeKey
(
"获取所有模板"
);
pushLog
.
setTypeName
(
"获取模板"
);
...
...
@@ -117,7 +135,7 @@ public class FascUtil {
List
<
SignTemplateListInfo
>
list
=
null
;
if
(
res
!=
null
)
{
// 更新日志
pushLog
.
setReturnData
(
res
.
toString
(
));
pushLog
.
setReturnData
(
JSON
.
toJSONString
(
res
,
features
));
pushLog
.
setTaskStatus
(
res
.
isSuccess
()
?
CommonConstants
.
ONE_STRING
:
CommonConstants
.
TWO_STRING
);
tFascPushLogService
.
updateById
(
pushLog
);
...
...
@@ -133,7 +151,7 @@ public class FascUtil {
pushLog
=
new
TFascPushLog
();
pushLog
.
setTransReferenceId
(
fascConfig
.
getOpenId
());
pushLog
.
setPushData
(
getSignTemplateListReq
.
toString
(
));
pushLog
.
setPushData
(
JSON
.
toJSONString
(
getSignTemplateListReq
,
features
));
pushLog
.
setTaskStatus
(
CommonConstants
.
ZERO_STRING
);
pushLog
.
setTypeKey
(
pushLog
.
getId
()
+
"获取所有模板"
+
i
);
pushLog
.
setTypeName
(
"分页循环获取模板"
);
...
...
@@ -142,7 +160,7 @@ public class FascUtil {
res
=
templateClient
.
getSignTemplateList
(
getSignTemplateListReq
);
if
(
res
!=
null
)
{
// 更新日志
pushLog
.
setReturnData
(
res
.
toString
(
));
pushLog
.
setReturnData
(
JSON
.
toJSONString
(
res
,
features
));
pushLog
.
setTaskStatus
(
res
.
isSuccess
()
?
CommonConstants
.
ONE_STRING
:
CommonConstants
.
TWO_STRING
);
tFascPushLogService
.
updateById
(
pushLog
);
...
...
@@ -184,6 +202,7 @@ public class FascUtil {
String
fieldType
;
String
isMust
;
StringBuilder
zhangName
;
String
docId
;
for
(
SignTemplateListInfo
mainInfo
:
templateList
)
{
if
(
mainInfo
!=
null
&&
mainInfo
.
getSignTemplateId
()
!=
null
)
{
zhangName
=
new
StringBuilder
();
...
...
@@ -208,7 +227,7 @@ public class FascUtil {
// 新增推送日志
TFascPushLog
pushLog
=
new
TFascPushLog
();
pushLog
.
setTransReferenceId
(
fascConfig
.
getOpenId
());
pushLog
.
setPushData
(
signTemplateDetailReq
.
toString
(
));
pushLog
.
setPushData
(
JSON
.
toJSONString
(
signTemplateDetailReq
,
features
));
pushLog
.
setTaskStatus
(
CommonConstants
.
ZERO_STRING
);
pushLog
.
setTypeKey
(
"获取所有明细映射"
);
pushLog
.
setTypeName
(
"获取明细映射"
);
...
...
@@ -218,7 +237,7 @@ public class FascUtil {
if
(
res
!=
null
)
{
// 更新日志
pushLog
.
setReturnData
(
res
.
toString
(
));
pushLog
.
setReturnData
(
JSON
.
toJSONString
(
res
,
features
));
pushLog
.
setTaskStatus
(
res
.
isSuccess
()
?
CommonConstants
.
ONE_STRING
:
CommonConstants
.
TWO_STRING
);
tFascPushLogService
.
updateById
(
pushLog
);
...
...
@@ -229,7 +248,8 @@ public class FascUtil {
}
// 循环文档(1,2,3)
for
(
DocumentInfo
doc
:
res
.
getData
().
getDocs
())
{
if
(
doc
.
getDocFields
()
!=
null
)
{
if
(
doc
.
getDocFields
()
!=
null
&&
Common
.
isNotNull
(
doc
.
getDocId
()))
{
docId
=
String
.
valueOf
(
doc
.
getDocId
());
// 循环文档里的字段
for
(
TemplateField
fields
:
doc
.
getDocFields
())
{
fieldType
=
fields
.
getFieldType
();
...
...
@@ -238,6 +258,7 @@ public class FascUtil {
// 文本数字等控件
detail
=
new
TFascTemplateDetail
();
detail
.
setSignTemplateId
(
signTemplateId
);
detail
.
setFascDocId
(
docId
);
detail
.
setFascField
(
fields
.
getFieldName
());
detail
.
setFascFieldId
(
fields
.
getFieldId
());
isMust
=
CommonConstants
.
ONE_STRING
;
...
...
@@ -291,4 +312,299 @@ public class FascUtil {
}
}
public
R
<
String
>
submitContract
(
TEmployeeContractPre
contract
,
TFascPushLogService
tFascPushLogService
,
TEmployeeContractPreService
tEmployeeContractPreService
)
throws
ApiException
{
OpenApiClient
openApiClient
=
new
OpenApiClient
(
fascConfig
.
getAppId
(),
fascConfig
.
getAppSecret
(),
fascConfig
.
getAppUrl
());
String
accessToken
=
this
.
getFascToken
(
openApiClient
);
OpenId
openId
=
new
OpenId
();
openId
.
setIdType
(
CacheConstants
.
FASC_ID_TYPE
);
openId
.
setOpenId
(
fascConfig
.
getOpenId
());
SignTaskClient
signTaskClient
=
new
SignTaskClient
(
openApiClient
);
CreateWithTemplateReq
createWithTemplateReq
=
new
CreateWithTemplateReq
();
createWithTemplateReq
.
setAccessToken
(
accessToken
);
createWithTemplateReq
.
setInitiator
(
openId
);
createWithTemplateReq
.
setSignTaskSubject
(
"签署合同-"
+
contract
.
getEmpIdcard
()
+
CommonConstants
.
DOWN_LINE_STRING
+
DateUtil
.
getThisTime
());
createWithTemplateReq
.
setAutoStart
(
false
);
// 不要自动提交
createWithTemplateReq
.
setAutoFillFinalize
(
true
);
// 自动定稿
createWithTemplateReq
.
setAutoFinish
(
true
);
// 签署完成后自动结束
createWithTemplateReq
.
setCertCAOrg
(
"CFCA"
);
// 签署参与方使用的签章证书颁发机构,默认无要求。CFCA:要求使用CFCA(中国金融认证中心);EZCA:要求使用东方中讯CA
createWithTemplateReq
.
setSignTemplateId
(
contract
.
getFadadaTemplateId
());
// 核心代码:设置参与方列表
createWithTemplateReq
.
setActors
(
this
.
buildActors
(
contract
));
// 新增推送日志
TFascPushLog
pushLog
=
new
TFascPushLog
();
pushLog
.
setTransReferenceId
(
fascConfig
.
getOpenId
());
pushLog
.
setPushData
(
JSON
.
toJSONString
(
createWithTemplateReq
,
features
));
pushLog
.
setTaskStatus
(
CommonConstants
.
ZERO_STRING
);
String
empIdCard
=
contract
.
getEmpIdcard
();
pushLog
.
setTypeKey
(
"发起合同签署任务,身份证:"
+
empIdCard
);
pushLog
.
setTypeName
(
"发起合同签署任务"
);
pushLog
.
setContractId
(
contract
.
getId
());
tFascPushLogService
.
save
(
pushLog
);
BaseRes
<
CreateSignTaskRes
>
res
=
signTaskClient
.
createWithTemplate
(
createWithTemplateReq
);
String
requestId
=
null
;
String
msg
=
"法大大第一步创建签署任务失败!"
;
if
(
res
!=
null
)
{
// 更新日志
pushLog
.
setReturnData
(
JSON
.
toJSONString
(
res
,
features
));
pushLog
.
setTaskStatus
(
res
.
isSuccess
()
?
CommonConstants
.
ONE_STRING
:
CommonConstants
.
TWO_STRING
);
if
(
res
.
isSuccess
()
&&
res
.
getData
()
!=
null
&&
res
.
getData
().
getSignTaskId
()
!=
null
)
{
requestId
=
res
.
getData
().
getSignTaskId
();
pushLog
.
setSignTaskId
(
requestId
);
}
tFascPushLogService
.
updateById
(
pushLog
);
if
(
Common
.
isNotNull
(
requestId
))
{
// 第二步:填写控件
R
<
String
>
sendValue
=
buildDocFieldValue
(
contract
,
requestId
,
openApiClient
,
accessToken
);
if
(
R
.
isSuccess
(
sendValue
))
{
// 第三步:提交任务
sendValue
=
submitTask
(
requestId
,
openApiClient
,
accessToken
);
if
(
R
.
isSuccess
(
sendValue
))
{
// 电子签签署中
this
.
doSuccessContract
(
contract
,
tEmployeeContractPreService
,
requestId
);
return
R
.
ok
();
}
else
{
msg
=
"第三步失败:提交任务失败:"
+
sendValue
.
getMsg
();
}
}
else
{
msg
=
"第二步失败:填写控件失败:"
+
sendValue
.
getMsg
();
}
}
else
{
msg
=
"第一步失败:"
+
res
.
getMsg
();
}
}
this
.
doFailContract
(
contract
,
tEmployeeContractPreService
,
msg
);
return
R
.
failed
(
msg
);
}
// 发起失败,更新合同状态
private
void
doFailContract
(
TEmployeeContractPre
contract
,
TEmployeeContractPreService
tEmployeeContractPreService
,
String
msg
)
{
contract
.
setProcessStatus
(
CommonConstants
.
dingleDigitStrArray
[
7
]);
contract
.
setRequestMsg
(
msg
);
tEmployeeContractPreService
.
updateById
(
contract
);
}
// 发起成功,更新合同状态
private
void
doSuccessContract
(
TEmployeeContractPre
contract
,
TEmployeeContractPreService
tEmployeeContractPreService
,
String
requestId
)
{
// 电子签签署中
contract
.
setProcessStatus
(
CommonConstants
.
dingleDigitStrArray
[
6
]);
contract
.
setRequestId
(
requestId
);
contract
.
setRequestMsg
(
""
);
tEmployeeContractPreService
.
updateById
(
contract
);
}
// 第二步:填写控件
private
R
<
String
>
buildDocFieldValue
(
TEmployeeContractPre
contract
,
String
requestId
,
OpenApiClient
openApiClient
,
String
accessToken
)
throws
ApiException
{
SignTaskClient
signTaskClient
=
new
SignTaskClient
(
openApiClient
);
FillFieldValuesReq
fillFieldValuesReq
=
new
FillFieldValuesReq
();
fillFieldValuesReq
.
setSignTaskId
(
requestId
);
List
<
DocFieldValueInfo
>
docFieldValues
=
new
ArrayList
<>();
DocFieldValueInfo
dfv
=
new
DocFieldValueInfo
();
dfv
.
setDocId
(
"78112332"
);
dfv
.
setFieldId
(
"9738851979"
);
dfv
.
setFieldValue
(
contract
.
getEmployeeName
());
docFieldValues
.
add
(
dfv
);
dfv
=
new
DocFieldValueInfo
();
dfv
.
setDocId
(
"78112332"
);
dfv
.
setFieldId
(
"2324432163"
);
dfv
.
setFieldValue
(
contract
.
getEmpIdcard
());
docFieldValues
.
add
(
dfv
);
fillFieldValuesReq
.
setDocFieldValues
(
docFieldValues
);
fillFieldValuesReq
.
setAccessToken
(
accessToken
);
BaseRes
<
Void
>
res
=
signTaskClient
.
fillFieldValues
(
fillFieldValuesReq
);
if
(
res
!=
null
)
{
if
(
res
.
isSuccess
())
{
return
R
.
ok
();
}
return
R
.
failed
(
res
.
getMsg
());
}
return
R
.
failed
(
"res无返回"
);
}
// 第三步:提交任务
private
R
<
String
>
submitTask
(
String
requestId
,
OpenApiClient
openApiClient
,
String
accessToken
)
throws
ApiException
{
SignTaskClient
signTaskClient
=
new
SignTaskClient
(
openApiClient
);
SignTaskBaseReq
signTaskBaseReq
=
new
SignTaskBaseReq
();
signTaskBaseReq
.
setSignTaskId
(
requestId
);
signTaskBaseReq
.
setAccessToken
(
accessToken
);
BaseRes
<
Void
>
res
=
signTaskClient
.
start
(
signTaskBaseReq
);
if
(
res
!=
null
)
{
if
(
res
.
isSuccess
())
{
return
R
.
ok
();
}
return
R
.
failed
(
res
.
getMsg
());
}
return
R
.
failed
(
"res无返回"
);
}
/**
* 构建参与方列表
*/
private
List
<
AddActorsTempInfo
>
buildActors
(
TEmployeeContractPre
contract
)
{
List
<
AddActorsTempInfo
>
actors
=
new
ArrayList
<>();
// 添加企业方(甲方)
actors
.
add
(
buildCompanyActor
(
contract
));
// 核心代码:添加员工方(乙方)
actors
.
add
(
buildEmployeeActor
(
contract
));
return
actors
;
}
/**
* 构建企业方参与方
*/
private
AddActorsTempInfo
buildCompanyActor
(
TEmployeeContractPre
contract
)
{
AddActorsTempInfo
companyActor
=
new
AddActorsTempInfo
();
Actor
actor
=
new
Actor
();
// TODO - 改造签署openID到mysql表里配置
// TODO - 参与方1 在模板详情接口返回
actor
.
setActorId
(
"发起企业"
);
// 与模板中的参与方标识一致
actor
.
setActorType
(
CacheConstants
.
FASC_ID_TYPE
);
actor
.
setActorName
(
"安徽皖信人力资源管理有限公司"
);
// 权限设置
actor
.
setPermissions
(
Collections
.
singletonList
(
"sign"
));
// 企业OpenId
actor
.
setActorOpenId
(
fascConfig
.
getOpenId
());
// 通知设置
actor
.
setSendNotification
(
true
);
// 通知地址:注:如参与方已传actorOpenId、acterFDDId或accountName,该字段会被忽略
/*if Common.isNotNull(contract.getEmpPhone()))
actor.setNotifyAddress(contract.getEmpPhone()
}*/
actor
.
setNotifyType
(
Collections
.
singletonList
(
"start"
));
companyActor
.
setActor
(
actor
);
return
companyActor
;
}
/**
* 构建员工方参与方
*/
private
AddActorsTempInfo
buildEmployeeActor
(
TEmployeeContractPre
contract
)
{
AddActorsTempInfo
employeeActor
=
new
AddActorsTempInfo
();
Actor
actor
=
new
Actor
();
// TODO - 改造签署openID到mysql表里配置
// TODO - 参与方1 在模板详情接口返回
actor
.
setActorId
(
"个人签署"
);
// 与模板中的参与方标识一致
actor
.
setActorType
(
CacheConstants
.
FASC_ID_TYPE_PERSON
);
actor
.
setActorName
(
contract
.
getEmployeeName
());
// 权限设置
actor
.
setPermissions
(
Collections
.
singletonList
(
"sign"
));
// 通知设置
actor
.
setSendNotification
(
true
);
if
(
Common
.
isNotNull
(
contract
.
getEmpPhone
()))
{
actor
.
setNotifyAddress
(
contract
.
getEmpPhone
());
}
actor
.
setNotifyType
(
Collections
.
singletonList
(
"start"
));
employeeActor
.
setActor
(
actor
);
return
employeeActor
;
}
// 撤销签署
public
R
<
String
>
cancelTask
(
TEmployeeContractPre
contract
,
TFascPushLogService
tFascPushLogService
,
TEmployeeContractPreService
tEmployeeContractPreService
)
throws
ApiException
{
OpenApiClient
openApiClient
=
new
OpenApiClient
(
fascConfig
.
getAppId
(),
fascConfig
.
getAppSecret
(),
fascConfig
.
getAppUrl
());
String
accessToken
=
this
.
getFascToken
(
openApiClient
);
SignTaskClient
signTaskClient
=
new
SignTaskClient
(
openApiClient
);
SignTaskCancelReq
signTaskCancelReq
=
new
SignTaskCancelReq
();
signTaskCancelReq
.
setSignTaskId
(
contract
.
getRequestId
());
signTaskCancelReq
.
setAccessToken
(
accessToken
);
// 新增推送日志
TFascPushLog
pushLog
=
new
TFascPushLog
();
pushLog
.
setTransReferenceId
(
fascConfig
.
getOpenId
());
pushLog
.
setPushData
(
JSON
.
toJSONString
(
signTaskCancelReq
,
features
));
pushLog
.
setTaskStatus
(
CommonConstants
.
ZERO_STRING
);
String
empIdCard
=
contract
.
getEmpIdcard
();
pushLog
.
setTypeKey
(
"发起撤销签署任务,身份证:"
+
empIdCard
);
pushLog
.
setTypeName
(
"发起撤销签署任务"
);
pushLog
.
setContractId
(
contract
.
getId
());
tFascPushLogService
.
save
(
pushLog
);
BaseRes
<
Void
>
res
=
signTaskClient
.
cancel
(
signTaskCancelReq
);
if
(
res
!=
null
)
{
pushLog
.
setReturnData
(
JSON
.
toJSONString
(
res
,
features
));
pushLog
.
setTaskStatus
(
res
.
isSuccess
()
?
CommonConstants
.
ONE_STRING
:
CommonConstants
.
TWO_STRING
);
tFascPushLogService
.
updateById
(
pushLog
);
if
(
res
.
isSuccess
())
{
contract
.
setProcessStatus
(
CommonConstants
.
dingleDigitStrArray
[
1
]);
contract
.
setSignType
(
CommonConstants
.
dingleDigitStrArray
[
1
]);
contract
.
setRequestMsg
(
""
);
tEmployeeContractPreService
.
updateById
(
contract
);
return
R
.
ok
();
}
else
{
// 撤销签署失败原因为 已完成签署(处理的同时员工完成签署公司免验证签完成),则更新为签署完成的“待归档”状态。
if
(
Common
.
isNotNull
(
res
.
getMsg
())
&&
FascConstants
.
FIELD_REASON
.
equals
(
res
.
getMsg
()))
{
contract
.
setProcessStatus
(
CommonConstants
.
dingleDigitStrArray
[
8
]);
contract
.
setRevokeReason
(
FascConstants
.
TIME_OUT_REASON
);
}
contract
.
setRequestMsg
(
res
.
getMsg
());
tEmployeeContractPreService
.
updateById
(
contract
);
return
R
.
failed
(
res
.
getMsg
());
}
}
return
R
.
failed
(
"res无返回"
);
}
// 催办
public
R
<
String
>
urgeTask
(
TEmployeeContractPre
contract
,
TFascPushLogService
tFascPushLogService
,
TEmployeeContractPreService
tEmployeeContractPreService
)
throws
ApiException
{
OpenApiClient
openApiClient
=
new
OpenApiClient
(
fascConfig
.
getAppId
(),
fascConfig
.
getAppSecret
(),
fascConfig
.
getAppUrl
());
String
accessToken
=
this
.
getFascToken
(
openApiClient
);
SignTaskClient
signTaskClient
=
new
SignTaskClient
(
openApiClient
);
SignTaskBaseReq
signTaskBaseReq
=
new
SignTaskBaseReq
();
signTaskBaseReq
.
setSignTaskId
(
contract
.
getRequestId
());
signTaskBaseReq
.
setAccessToken
(
accessToken
);
// 新增推送日志
TFascPushLog
pushLog
=
new
TFascPushLog
();
pushLog
.
setTransReferenceId
(
fascConfig
.
getOpenId
());
pushLog
.
setPushData
(
JSON
.
toJSONString
(
signTaskClient
,
features
));
pushLog
.
setTaskStatus
(
CommonConstants
.
ZERO_STRING
);
String
empIdCard
=
contract
.
getEmpIdcard
();
pushLog
.
setTypeKey
(
"发起催办任务,身份证:"
+
empIdCard
);
pushLog
.
setTypeName
(
"发起催办任务"
);
pushLog
.
setContractId
(
contract
.
getId
());
tFascPushLogService
.
save
(
pushLog
);
BaseRes
<
Void
>
res
=
signTaskClient
.
signTaskUrge
(
signTaskBaseReq
);
if
(
res
!=
null
)
{
pushLog
.
setReturnData
(
JSON
.
toJSONString
(
res
,
features
));
pushLog
.
setTaskStatus
(
res
.
isSuccess
()
?
CommonConstants
.
ONE_STRING
:
CommonConstants
.
TWO_STRING
);
tFascPushLogService
.
updateById
(
pushLog
);
if
(
res
.
isSuccess
())
{
return
R
.
ok
();
}
else
{
contract
.
setRequestMsg
(
res
.
getMsg
());
tEmployeeContractPreService
.
updateById
(
contract
);
return
R
.
failed
(
res
.
getMsg
());
}
}
return
R
.
failed
(
"res无返回"
);
}
}
yifu-archives/yifu-archives-biz/src/main/resources/application-dev.yml
View file @
77dd2305
...
...
@@ -8,6 +8,7 @@ spring:
redis
:
host
:
127.0.0.1
port
:
6379
password
:
'
@yf_2017'
datasource
:
type
:
com.zaxxer.hikari.HikariDataSource
driver-class-name
:
com.mysql.cj.jdbc.Driver
...
...
yifu-archives/yifu-archives-biz/src/main/resources/mapper/TEmployeeContractPreMapper.xml
View file @
77dd2305
...
...
@@ -24,6 +24,7 @@
<result
property=
"errorInfo"
column=
"error_info"
/>
<result
property=
"errorTime"
column=
"error_time"
/>
<result
property=
"fadadaTemplate"
column=
"fadada_template"
/>
<result
property=
"fadadaTemplateId"
column=
"fadada_template_id"
/>
<result
property=
"dataSource"
column=
"data_source"
/>
<result
property=
"expectedCollectionTime"
column=
"expected_collection_time"
/>
<result
property=
"contractStart"
column=
"contract_start"
/>
...
...
@@ -84,7 +85,9 @@
<result
property=
"createName"
column=
"create_name"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updateBy"
column=
"update_by"
/>
<result
property=
"contractSubName"
column=
"CONTRACT_SUB_NAME,"
/>
<result
property=
"contractSubName"
column=
"CONTRACT_SUB_NAME"
/>
<result
property=
"requestId"
column=
"request_id"
/>
<result
property=
"requestMsg"
column=
"request_msg"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id
...
...
@@ -103,6 +106,7 @@
,customer_user_loginname
,sign_type
,fadada_template
,fadada_template_id
,data_source
,expected_confirm_time
,expected_collection_time
...
...
@@ -165,6 +169,8 @@
,TASK
,TASK_TYPE
,TASK_END_STANDARD,contract_flag,a.CONTRACT_SUB_NAME
,a.request_id
,a.request_msg
</sql>
<sql
id=
"tEmployeeContractPre_where"
>
<if
test=
"tEmployeeContractPre != null"
>
...
...
yifu-archives/yifu-archives-biz/src/main/resources/mapper/TFascTemplateDetailMapper.xml
View file @
77dd2305
...
...
@@ -41,6 +41,7 @@
<result
property=
"signTemplateName"
column=
"sign_template_name"
/>
<result
property=
"signTemplateStatus"
column=
"sign_template_status"
/>
<result
property=
"contractType"
column=
"contract_type"
/>
<result
property=
"fascDocId"
column=
"fasc_doc_id"
/>
</resultMap>
<resultMap
id=
"tFascTemplateDetailExportMap"
type=
"com.yifu.cloud.plus.v1.yifu.archives.vo.TFascTemplateDetailExportVo"
>
...
...
@@ -59,6 +60,7 @@
<sql
id=
"Base_Column_List"
>
a.id,
a.sign_template_id,
a.fasc_doc_id,
a.fasc_field,
a.fasc_field_id,
a.is_must,
...
...
yifu-common/yifu-common-core/src/main/java/com/yifu/cloud/plus/v1/yifu/common/core/constant/CacheConstants.java
View file @
77dd2305
...
...
@@ -202,6 +202,7 @@ public interface CacheConstants {
String
FASC_ACCOSS_TOKEN
=
"FASC_ACCOSS_TOKEN"
;
// 如果idType为corp:代表应用系统上的企业用户,主体方是openCorpId所指定的企业
String
FASC_ID_TYPE
=
"corp"
;
String
FASC_ID_TYPE_PERSON
=
"person"
;
/**
* 登录用户最近一次选择的收入证明单位名称
...
...
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