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
46784c81
Commit
46784c81
authored
Oct 30, 2025
by
hongguangwu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
MVP1.7.16-签署失败
parent
86926cce
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
10 additions
and
212 deletions
+10
-212
FascController.java
...loud/plus/v1/yifu/archives/controller/FascController.java
+6
-208
DoFascTask.java
...om/yifu/cloud/plus/v1/yifu/archives/utils/DoFascTask.java
+4
-4
No files found.
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/controller/FascController.java
View file @
46784c81
...
@@ -2,23 +2,19 @@ package com.yifu.cloud.plus.v1.yifu.archives.controller;
...
@@ -2,23 +2,19 @@ package com.yifu.cloud.plus.v1.yifu.archives.controller;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.fadada.api.utils.crypt.FddCryptUtil
;
import
com.fadada.api.utils.crypt.FddCryptUtil
;
import
com.fasc.open.api.constants.RequestConstants
;
import
com.fasc.open.api.constants.RequestConstants
;
import
com.fasc.open.api.exception.ApiException
;
import
com.fasc.open.api.exception.ApiException
;
import
com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser
;
import
com.yifu.cloud.plus.v1.yifu.archives.config.FascConfig
;
import
com.yifu.cloud.plus.v1.yifu.archives.config.FascConfig
;
import
com.yifu.cloud.plus.v1.yifu.archives.
config.WxConfi
g
;
import
com.yifu.cloud.plus.v1.yifu.archives.
entity.TFascPushLo
g
;
import
com.yifu.cloud.plus.v1.yifu.archives.
entity.*
;
import
com.yifu.cloud.plus.v1.yifu.archives.
service.FascService
;
import
com.yifu.cloud.plus.v1.yifu.archives.service.
*
;
import
com.yifu.cloud.plus.v1.yifu.archives.service.
TFascPushLogService
;
import
com.yifu.cloud.plus.v1.yifu.archives.utils.DoFascTask
;
import
com.yifu.cloud.plus.v1.yifu.archives.utils.DoFascTask
;
import
com.yifu.cloud.plus.v1.yifu.archives.utils.DoJointTask
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.Common
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.Common
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser
;
import
com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser
;
import
com.yifu.cloud.plus.v1.yifu.common.dapr.util.UpmsDaprUtils
;
import
com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner
;
import
com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
...
@@ -29,7 +25,6 @@ import org.springframework.context.annotation.Lazy;
...
@@ -29,7 +25,6 @@ import org.springframework.context.annotation.Lazy;
import
org.springframework.security.core.GrantedAuthority
;
import
org.springframework.security.core.GrantedAuthority
;
import
org.springframework.security.core.authority.AuthorityUtils
;
import
org.springframework.security.core.authority.AuthorityUtils
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.client.RestTemplate
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
...
@@ -50,26 +45,15 @@ public class FascController {
...
@@ -50,26 +45,15 @@ public class FascController {
@Autowired
@Autowired
private
FascConfig
fascConfig
;
private
FascConfig
fascConfig
;
@Autowired
private
WxConfig
wxConfig
;
@Autowired
private
UpmsDaprUtils
upmsDaprUtils
;
@Autowired
@Autowired
@Lazy
@Lazy
private
DoFascTask
doFascTask
;
private
DoFascTask
doFascTask
;
private
final
TFascPushLogService
tFascPushLogService
;
private
final
TFascPushLogService
tFascPushLogService
;
private
final
TEmployeeContractPreService
tEmployeeContractPreService
;
private
final
TEmployeeContractInfoService
tEmployeeContractInfoService
;
private
final
TEmployeeContractAuditService
tEmployeeContractAuditService
;
private
final
TContractAutoLogService
contractAutoLogService
;
private
static
String
FASC_EVENT
=
"X-FASC-Event"
;
private
static
String
FASC_EVENT
=
"X-FASC-Event"
;
private
static
String
FASC_BIZ_CONTENT
=
"bizContent"
;
private
static
String
FASC_BIZ_CONTENT
=
"bizContent"
;
private
static
String
FASC_SUCCESS
=
"success"
;
private
static
String
FASC_SUCCESS
=
"success"
;
private
static
String
FASC_BIZ_CONTENT_STR
=
";fddBizContent:"
;
/**
/**
* @Description: 获取模板
* @Description: 获取模板
...
@@ -159,7 +143,7 @@ public class FascController {
...
@@ -159,7 +143,7 @@ public class FascController {
@Operation
(
description
=
"获取附件"
)
@Operation
(
description
=
"获取附件"
)
@GetMapping
(
"/getFileByRequestId"
)
@GetMapping
(
"/getFileByRequestId"
)
public
R
<
String
>
getFileByRequestId
(
@RequestParam
String
id
)
throws
ApiException
{
public
R
<
String
>
getFileByRequestId
(
@RequestParam
String
id
)
throws
ApiException
{
boolean
flag
=
fascService
.
getFileByRequestId
(
id
);
fascService
.
getFileByRequestId
(
id
);
return
R
.
ok
();
return
R
.
ok
();
}
}
...
@@ -173,7 +157,7 @@ public class FascController {
...
@@ -173,7 +157,7 @@ public class FascController {
true
,
true
,
"1"
,
authorities
,
"1"
,
"1"
,
authorities
,
"1"
,
null
,
null
,
null
,
null
,
null
,
null
);
null
,
null
);
}
}
@Operation
(
summary
=
"异步通知"
,
description
=
"异步通知"
)
@Operation
(
summary
=
"异步通知"
,
description
=
"异步通知"
)
...
@@ -202,159 +186,17 @@ public class FascController {
...
@@ -202,159 +186,17 @@ public class FascController {
// 原因
// 原因
String
terminationNote
=
jsonObject
.
getString
(
"terminationNote"
);
String
terminationNote
=
jsonObject
.
getString
(
"terminationNote"
);
// 操作人
// 操作人
String
userName
=
jsonObject
.
getString
(
"userName"
);
//String userName = jsonObject.getString("userName")
// 异步执行:
// 异步执行:
doFascTask
.
doFascOkCore
(
pushLog
,
fddEvent
,
fddBizContent
,
signTaskId
,
terminationNote
);
doFascTask
.
doFascOkCore
(
pushLog
,
fddEvent
,
fddBizContent
,
signTaskId
,
terminationNote
);
/*YifuUser user = getNewYifuUser();
pushLog.setTypeKey("fddEvent:"+ fddEvent);
pushLog.setReturnData("初始无事件:fddEvent:" + fddEvent + "fddBizContent:" + fddBizContent);
if (Common.isNotNull(signTaskId)) {
// 根据requestId获取信息:
TEmployeeContractPre pre = tEmployeeContractPreService.getOne(Wrappers.<TEmployeeContractPre>query().lambda()
.eq(TEmployeeContractPre::getRequestId, signTaskId).last(CommonConstants.LAST_ONE_SQL));
if (pre != null && Common.isNotNull(pre.getProcessStatus()) && !pre.getProcessStatus().equals(CommonConstants.dingleDigitStrArray[9])) {
TEmployeeContractInfo contractInfo = null;
if (Common.isNotNull(pre.getContractId())) {
//如果存在合同申请审核数据,将状态更新成待提交
contractInfo = tEmployeeContractInfoService.getById(pre.getContractId());
}
if (contractInfo != null) {
if (fddEvent.equals("sign-task-finished")) {
// 1:签署任务完成事件
// 8电子待归档
pre.setProcessStatus(CommonConstants.dingleDigitStrArray[8]);
// 加日志
this.saveAuditLogSuccess(pre, "签署成功");
// 尝试获取归档文件
boolean flag = fascService.getFileByRequestId(pre.getId());
contractInfo.setAuditStatus(CommonConstants.TWO_INT);
// 传了false,就不要审核日志
tEmployeeContractInfoService.auditContract(contractInfo, user, false);
if (flag) {
// 加日志
this.saveAuditLogSuccess(pre, "归档成功");
pre.setProcessStatus(CommonConstants.dingleDigitStrArray[9]);
contractInfo.setIsFile(CommonConstants.ZERO_STRING);
contractInfo.setContractNo(pre.getRequestId());
tEmployeeContractInfoService.updateById(contractInfo);
//瓜子项目编码:皖A694302
if (CommonConstants.GZ_DEPT_NO.equals(contractInfo.getDeptNo())) {
//合同归档瓜子合同状态更新已归档
tEmployeeContractInfoService.updateGzOfferStatus(contractInfo,CommonConstants.EIGHT_STRING,CommonConstants.NINETY_NINE,user.getId(),user.getNickname());
}
}
tEmployeeContractPreService.updateById(pre);
pushLog.setReturnData("签署任务完成事件:fddEvent:" + fddEvent + FASC_BIZ_CONTENT_STR + fddBizContent);
} else if (fddEvent.equals("sign-task-canceled") || fddEvent.equals("sign-task-abolish")) {
// 2:签署任务撤销事件 || 4:签署任务作废事件
if (fddEvent.equals("sign-task-canceled")) {
// 4:签署任务作废事件
pushLog.setReturnData("签署任务撤销事件:fddEvent:" + fddEvent + FASC_BIZ_CONTENT_STR + fddBizContent);
} else {
// 4:签署任务作废事件
pushLog.setReturnData("签署任务作废事件:fddEvent:" + fddEvent + FASC_BIZ_CONTENT_STR + fddBizContent);
}
//电子待归档、线下签待归档、已完结的不能撤销签署
if (Common.isNotNull(pre) && !CommonConstants.NINE_STRING.equals(pre.getProcessStatus()) &&
!CommonConstants.FOUR_STRING.equals(pre.getProcessStatus()) &&
!CommonConstants.EIGHT_STRING.equals(pre.getProcessStatus())) {
//如果不是待确认和待发起,需要记录操作记录
if (!CommonConstants.ZERO_STRING.equals(pre.getProcessStatus()) &&
!CommonConstants.ONE_STRING.equals(pre.getProcessStatus()) &&
Common.isNotNull(pre.getContractId())) {
// 加日志
this.saveAuditLogFail(pre, "撤销签署", terminationNote);
}
pre.setProcessStatus(CommonConstants.TEN_STRING);
pre.setSignFlag(CommonConstants.ZERO_STRING);
pre.setRevokeReason(terminationNote);
tEmployeeContractPreService.updateById(pre);
}
//如果存在合同申请审核数据,将状态更新成待提交
contractInfo.setAuditStatus(CommonConstants.ZERO_INT);
contractInfo.setInUse(CommonConstants.ONE_STRING);
tEmployeeContractInfoService.updateById(contractInfo);
} else if (fddEvent.equals("sign-task-sign-failed")
|| fddEvent.equals("sign-task-sign-rejected")
|| fddEvent.equals("sign-task-ignore")
|| fddEvent.equals("sign-task-fill-rejected")) {
// 3:签署任务参与方签署失败事件
pre.setProcessStatus(CommonConstants.dingleDigitStrArray[7]);
pre.setRequestId("");
tEmployeeContractPreService.updateById(pre);
//如果存在合同申请审核数据,将状态更新成待提交
contractInfo.setAuditStatus(CommonConstants.ZERO_INT);
contractInfo.setInUse(CommonConstants.ONE_STRING);
tEmployeeContractInfoService.updateById(contractInfo);
UUID uuid = UUID.randomUUID();
//生成快照数据
TContractAutoLog contractAutoLog = new TContractAutoLog();
contractAutoLog.setContractId(uuid.toString());
contractAutoLog.setEmpName(pre.getEmployeeName());
contractAutoLog.setEmpIdcard(pre.getEmpIdcard());
contractAutoLog.setPhone(pre.getEmpPhone());
contractAutoLog.setMainId(pre.getId());
contractAutoLog.setErrorInfo(null== terminationNote ? "法大大签署失败" : terminationNote);
contractAutoLogService.save(contractAutoLog);
//签署失败发送企微消息
sendFddFalureInfoToWx(pre,contractAutoLog.getId());
// 加日志
this.saveAuditLogFail(pre, "签署失败", terminationNote);
pushLog.setReturnData("签署任务参与方签署失败事件:fddEvent:" + fddEvent + FASC_BIZ_CONTENT_STR + fddBizContent);
}
}
}
}
tFascPushLogService.updateById(pushLog);*/
return
R
.
ok
(
null
,
FASC_SUCCESS
);
return
R
.
ok
(
null
,
FASC_SUCCESS
);
}
}
return
R
.
ok
(
null
,
FASC_SUCCESS
);
return
R
.
ok
(
null
,
FASC_SUCCESS
);
}
}
// 加合同里的流程进展明细的日志——成功
public
void
saveAuditLogSuccess
(
TEmployeeContractPre
tEmployeeContractPre
,
String
rootName
)
{
// 加流程进展明细
if
(
tEmployeeContractPre
!=
null
&&
Common
.
isNotNull
(
tEmployeeContractPre
.
getContractId
()))
{
this
.
saveAuditLogInfo
(
tEmployeeContractPre
.
getContractId
(),
rootName
,
null
);
}
}
// 加合同里的流程进展明细的日志——失败
public
void
saveAuditLogFail
(
TEmployeeContractPre
tEmployeeContractPre
,
String
rootName
,
String
remark
)
{
// 加流程进展明细
if
(
tEmployeeContractPre
!=
null
&&
Common
.
isNotNull
(
tEmployeeContractPre
.
getContractId
()))
{
this
.
saveAuditLogInfo
(
tEmployeeContractPre
.
getContractId
(),
rootName
,
remark
);
}
}
// 加合同里的流程进展明细的日志
public
void
saveAuditLogInfo
(
String
contractId
,
String
rootName
,
String
remark
)
{
// 加流程进展明细
if
(
Common
.
isNotNull
(
contractId
))
{
TEmployeeContractAudit
audit
=
new
TEmployeeContractAudit
();
audit
.
setRootName
(
rootName
);
audit
.
setLinkId
(
contractId
);
audit
.
setLinkType
(
CommonConstants
.
ONE_INT
);
if
(
Common
.
isNotNull
(
remark
))
{
audit
.
setRemark
(
remark
);
}
audit
.
setCreateBy
(
"1"
);
audit
.
setCreateName
(
"法大大电子签"
);
tEmployeeContractAuditService
.
save
(
audit
);
}
}
//验证签名,返回true表示失败
//验证签名,返回true表示失败
public
boolean
checkSign
(
HttpServletRequest
request
,
TFascPushLog
pushLog
)
throws
Exception
{
public
boolean
checkSign
(
HttpServletRequest
request
,
TFascPushLog
pushLog
)
throws
Exception
{
...
@@ -382,48 +224,4 @@ public class FascController {
...
@@ -382,48 +224,4 @@ public class FascController {
return
true
;
return
true
;
}
}
/**
* 发送法大大失败提醒通知到企微
* @param pre 合同待购买
*/
private
void
sendFddFalureInfoToWx
(
TEmployeeContractPre
pre
,
String
id
)
{
//获取前端客服
SysUser
user
;
if
(
Common
.
isEmpty
(
pre
.
getCustomerUserLoginname
()))
{
return
;
}
R
<
SysUser
>
res
=
upmsDaprUtils
.
getSimpleUserByLoginName
(
pre
.
getCustomerUserLoginname
());
if
(
Common
.
isNotNull
(
res
)
&&
Common
.
isNotNull
(
res
.
getData
()))
{
user
=
res
.
getData
();
}
else
{
return
;
}
StringBuilder
sendUser
=
null
;
if
(
Common
.
isNotKong
(
user
.
getWxMessage
()))
{
sendUser
=
new
StringBuilder
(
user
.
getWxMessage
());
}
if
(
sendUser
!=
null
)
{
RestTemplate
restTemplate
=
new
RestTemplate
();
Map
<
String
,
Object
>
requestMap
=
new
HashMap
<>();
Map
<
String
,
Object
>
textcard
=
new
HashMap
<>();
String
authUrl
=
String
.
format
(
SecurityConstants
.
WX_GET_MESSAGE_AUTH_URL
,
wxConfig
.
getCorpid
()
,
wxConfig
.
getDomainName
()
+
"/auth/oauth/wxLogin"
,
"72"
+
id
);
StringBuilder
description
=
new
StringBuilder
();
String
title
=
"作业自动化——电子合同签署失败提醒"
;
description
.
append
(
pre
.
getEmployeeName
()
+
"-"
+
pre
.
getEmpIdcard
()+
"-"
+
pre
.
getEmpPhone
()
+
",电子合同签署失败"
).
append
(
"<br>"
);
description
.
append
(
"请及时处理,以免产生用工风险!"
).
append
(
"<br>"
);
textcard
.
put
(
"title"
,
title
);
textcard
.
put
(
"url"
,
authUrl
);
textcard
.
put
(
"description"
,
description
.
toString
());
requestMap
.
put
(
"touser"
,
sendUser
);
requestMap
.
put
(
"agentid"
,
wxConfig
.
getAgentid
());
requestMap
.
put
(
"msgtype"
,
"textcard"
);
requestMap
.
put
(
"textcard"
,
textcard
);
// 必须加上header说明
if
(!
wxConfig
.
sendTextCard
(
restTemplate
,
requestMap
))
{
wxConfig
.
sendTextCard
(
restTemplate
,
requestMap
);
}
}
}
}
}
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/utils/DoFascTask.java
View file @
46784c81
...
@@ -131,8 +131,8 @@ public class DoFascTask {
...
@@ -131,8 +131,8 @@ public class DoFascTask {
pre
.
setRevokeReason
(
terminationNote
);
pre
.
setRevokeReason
(
terminationNote
);
tEmployeeContractPreService
.
updateById
(
pre
);
tEmployeeContractPreService
.
updateById
(
pre
);
}
}
//如果存在合同申请审核数据,将状态更新成
待提交
//如果存在合同申请审核数据,将状态更新成
5撤销签署
contractInfo
.
setAuditStatus
(
CommonConstants
.
ZERO
_INT
);
contractInfo
.
setAuditStatus
(
CommonConstants
.
FIVE
_INT
);
contractInfo
.
setInUse
(
CommonConstants
.
ONE_STRING
);
contractInfo
.
setInUse
(
CommonConstants
.
ONE_STRING
);
tEmployeeContractInfoService
.
updateById
(
contractInfo
);
tEmployeeContractInfoService
.
updateById
(
contractInfo
);
}
else
if
(
fddEvent
.
equals
(
"sign-task-sign-failed"
)
}
else
if
(
fddEvent
.
equals
(
"sign-task-sign-failed"
)
...
@@ -144,8 +144,8 @@ public class DoFascTask {
...
@@ -144,8 +144,8 @@ public class DoFascTask {
pre
.
setRequestId
(
""
);
pre
.
setRequestId
(
""
);
tEmployeeContractPreService
.
updateById
(
pre
);
tEmployeeContractPreService
.
updateById
(
pre
);
//如果存在合同申请审核数据,将状态更新成
待提交
//如果存在合同申请审核数据,将状态更新成
6签署失败
contractInfo
.
setAuditStatus
(
CommonConstants
.
ZERO
_INT
);
contractInfo
.
setAuditStatus
(
CommonConstants
.
SIX
_INT
);
contractInfo
.
setInUse
(
CommonConstants
.
ONE_STRING
);
contractInfo
.
setInUse
(
CommonConstants
.
ONE_STRING
);
tEmployeeContractInfoService
.
updateById
(
contractInfo
);
tEmployeeContractInfoService
.
updateById
(
contractInfo
);
...
...
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