Commit 46784c81 authored by hongguangwu's avatar hongguangwu

MVP1.7.16-签署失败

parent 86926cce
......@@ -2,23 +2,19 @@ package com.yifu.cloud.plus.v1.yifu.archives.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.fadada.api.utils.crypt.FddCryptUtil;
import com.fasc.open.api.constants.RequestConstants;
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.WxConfig;
import com.yifu.cloud.plus.v1.yifu.archives.entity.*;
import com.yifu.cloud.plus.v1.yifu.archives.service.*;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TFascPushLog;
import com.yifu.cloud.plus.v1.yifu.archives.service.FascService;
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.DoJointTask;
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.util.Common;
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.dapr.util.UpmsDaprUtils;
import com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
......@@ -29,7 +25,6 @@ import org.springframework.context.annotation.Lazy;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.AuthorityUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
......@@ -50,26 +45,15 @@ public class FascController {
@Autowired
private FascConfig fascConfig;
@Autowired
private WxConfig wxConfig;
@Autowired
private UpmsDaprUtils upmsDaprUtils;
@Autowired
@Lazy
private DoFascTask doFascTask;
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_BIZ_CONTENT = "bizContent";
private static String FASC_SUCCESS = "success";
private static String FASC_BIZ_CONTENT_STR = ";fddBizContent:";
/**
* @Description: 获取模板
......@@ -159,7 +143,7 @@ public class FascController {
@Operation(description = "获取附件")
@GetMapping("/getFileByRequestId")
public R<String> getFileByRequestId(@RequestParam String id) throws ApiException {
boolean flag = fascService.getFileByRequestId(id);
fascService.getFileByRequestId(id);
return R.ok();
}
......@@ -173,7 +157,7 @@ public class FascController {
true,
"1", authorities, "1",
null, null,
null,null);
null, null);
}
@Operation(summary = "异步通知", description = "异步通知")
......@@ -202,159 +186,17 @@ public class FascController {
// 原因
String terminationNote = jsonObject.getString("terminationNote");
// 操作人
String userName = jsonObject.getString("userName");
//String userName = jsonObject.getString("userName")
// 异步执行:
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);
}
// 加合同里的流程进展明细的日志——成功
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表示失败
public boolean checkSign(HttpServletRequest request, TFascPushLog pushLog) throws Exception {
......@@ -382,48 +224,4 @@ public class FascController {
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);
}
}
}
}
......@@ -131,8 +131,8 @@ public class DoFascTask {
pre.setRevokeReason(terminationNote);
tEmployeeContractPreService.updateById(pre);
}
//如果存在合同申请审核数据,将状态更新成待提交
contractInfo.setAuditStatus(CommonConstants.ZERO_INT);
//如果存在合同申请审核数据,将状态更新成5撤销签署
contractInfo.setAuditStatus(CommonConstants.FIVE_INT);
contractInfo.setInUse(CommonConstants.ONE_STRING);
tEmployeeContractInfoService.updateById(contractInfo);
} else if (fddEvent.equals("sign-task-sign-failed")
......@@ -144,8 +144,8 @@ public class DoFascTask {
pre.setRequestId("");
tEmployeeContractPreService.updateById(pre);
//如果存在合同申请审核数据,将状态更新成待提交
contractInfo.setAuditStatus(CommonConstants.ZERO_INT);
//如果存在合同申请审核数据,将状态更新成6签署失败
contractInfo.setAuditStatus(CommonConstants.SIX_INT);
contractInfo.setInUse(CommonConstants.ONE_STRING);
tEmployeeContractInfoService.updateById(contractInfo);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment