Commit 64fc5e8a authored by hongguangwu's avatar hongguangwu

MVP1.7.16-法大大字段

parent 0a0f3f12
...@@ -391,7 +391,7 @@ public class TEmployeeContractInfo extends BaseEntity { ...@@ -391,7 +391,7 @@ public class TEmployeeContractInfo extends BaseEntity {
/** /**
* 审核状态(0:待提交;1:待审核;2审核通过;3审核不通过) * 审核状态(0:待提交;1:待审核;2审核通过;3审核不通过)
*/ */
@Schema(description = "审核状态(0:待提交;1:待审核;2审核通过;3审核不通过)") @Schema(description = "审核状态(0:待提交;1:待审核;2审核通过;3审核不通过;4签署中;5撤销签署;6签署失败)")
private Integer auditStatus; private Integer auditStatus;
/** /**
......
...@@ -187,7 +187,7 @@ public class EmployeeContractExportVO implements Serializable { ...@@ -187,7 +187,7 @@ public class EmployeeContractExportVO implements Serializable {
@HeadFontStyle(fontHeightInPoints = 11) @HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("审核状态") @ExcelProperty("审核状态")
@ExcelAttribute(name = "审核状态", readConverterExp = "0=待提交,1=待审核,2=审核通过,3=审核不通过") @ExcelAttribute(name = "审核状态", readConverterExp = "0=待提交,1=待审核,2=审核通过,3=审核不通过,4=签署中,5=撤销签署,6=签署失败")
@Schema(description = "审核状态") @Schema(description = "审核状态")
private String auditStatus; private String auditStatus;
......
...@@ -219,9 +219,14 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr ...@@ -219,9 +219,14 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
TFascTemplateDetail detail = new TFascTemplateDetail(); TFascTemplateDetail detail = new TFascTemplateDetail();
detail.setSignTemplateId(contract.getFadadaTemplateId()); detail.setSignTemplateId(contract.getFadadaTemplateId());
List<TFascTemplateDetail> detailList = tFascTemplateDetailService.getTFascTemplateDetailList(detail); List<TFascTemplateDetail> detailList = tFascTemplateDetailService.getTFascTemplateDetailList(detail);
// TODO - 判断是否入职超过1个月 // - 判断是否入职超过1个月——接口入口做了
R<String> requestInfo = fascUtil.submitContract(contract, tFascPushLogService, tEmployeeContractPreMapper); R<String> requestInfo = fascUtil.submitContract(contract, tFascPushLogService, tEmployeeContractPreMapper, tFascTemplate, detailList);
if (!R.isSuccess(requestInfo)) {
contract.setRequestId(requestInfo.getData());
contract.setProcessStatus(CommonConstants.dingleDigitStrArray[2]);
tEmployeeContractPreMapper.updateById(contract);
}
return requestInfo; return requestInfo;
} }
......
...@@ -31,17 +31,13 @@ import com.yifu.cloud.plus.v1.yifu.common.core.constant.CacheConstants; ...@@ -31,17 +31,13 @@ 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.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.exception.CheckedException; import com.yifu.cloud.plus.v1.yifu.common.core.exception.CheckedException;
import com.yifu.cloud.plus.v1.yifu.common.core.util.*; import com.yifu.cloud.plus.v1.yifu.common.core.util.*;
import org.checkerframework.checker.units.qual.C;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.io.File;
import java.io.InputStream; import java.io.InputStream;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.URL; import java.net.URL;
import java.net.URLDecoder;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
...@@ -317,7 +313,8 @@ public class FascUtil { ...@@ -317,7 +313,8 @@ public class FascUtil {
} }
public R<String> submitContract(TEmployeeContractPre contract, TFascPushLogService tFascPushLogService public R<String> submitContract(TEmployeeContractPre contract, TFascPushLogService tFascPushLogService
, TEmployeeContractPreMapper tEmployeeContractPreMapper) throws ApiException { , TEmployeeContractPreMapper tEmployeeContractPreMapper
, TFascTemplate tFascTemplate, List<TFascTemplateDetail> detailList) throws ApiException {
OpenApiClient openApiClient = new OpenApiClient(fascConfig.getAppId(), fascConfig.getAppSecret(), fascConfig.getAppUrl()); OpenApiClient openApiClient = new OpenApiClient(fascConfig.getAppId(), fascConfig.getAppSecret(), fascConfig.getAppUrl());
String accessToken = this.getFascToken(openApiClient); String accessToken = this.getFascToken(openApiClient);
OpenId openId = new OpenId(); OpenId openId = new OpenId();
...@@ -362,7 +359,7 @@ public class FascUtil { ...@@ -362,7 +359,7 @@ public class FascUtil {
tFascPushLogService.updateById(pushLog); tFascPushLogService.updateById(pushLog);
if (Common.isNotNull(requestId)) { if (Common.isNotNull(requestId)) {
// 第二步:填写控件 // 第二步:填写控件
R<String> sendValue = buildDocFieldValue(contract, requestId, openApiClient, accessToken); R<String> sendValue = buildDocFieldValue(contract, requestId, openApiClient, accessToken, tFascTemplate, detailList);
if (R.isSuccess(sendValue)) { if (R.isSuccess(sendValue)) {
// 第三步:提交任务 // 第三步:提交任务
sendValue = submitTask(requestId, openApiClient, accessToken); sendValue = submitTask(requestId, openApiClient, accessToken);
...@@ -402,13 +399,32 @@ public class FascUtil { ...@@ -402,13 +399,32 @@ public class FascUtil {
// 第二步:填写控件 // 第二步:填写控件
private R<String> buildDocFieldValue(TEmployeeContractPre contract, String requestId private R<String> buildDocFieldValue(TEmployeeContractPre contract, String requestId
, OpenApiClient openApiClient, String accessToken) throws ApiException { , OpenApiClient openApiClient, String accessToken
, TFascTemplate tFascTemplate, List<TFascTemplateDetail> detailList) throws ApiException {
SignTaskClient signTaskClient = new SignTaskClient(openApiClient); SignTaskClient signTaskClient = new SignTaskClient(openApiClient);
FillFieldValuesReq fillFieldValuesReq = new FillFieldValuesReq(); FillFieldValuesReq fillFieldValuesReq = new FillFieldValuesReq();
fillFieldValuesReq.setSignTaskId(requestId); fillFieldValuesReq.setSignTaskId(requestId);
List<DocFieldValueInfo> docFieldValues = new ArrayList<>(); List<DocFieldValueInfo> docFieldValues = new ArrayList<>();
DocFieldValueInfo dfv = new DocFieldValueInfo(); if (detailList != null && !detailList.isEmpty()) {
DocFieldValueInfo dfv;
String fieldValue;
for (TFascTemplateDetail detail : detailList) {
if (Common.isNotNull(detail.getHrFieldId()) && Common.isNotNull(detail.getHrField())) {
dfv = new DocFieldValueInfo();
dfv.setDocId(detail.getFascDocId());
dfv.setFieldId(detail.getFascFieldId());
// 转化字段
fieldValue = this.getContractFieldValueByReflection(contract, detail.getHrFieldId());
dfv.setFieldValue(fieldValue);
dfv.setFieldValue(detail.getHrFieldId());
docFieldValues.add(dfv);
}
}
}
/*DocFieldValueInfo dfv = new DocFieldValueInfo();
dfv.setDocId("78112332"); dfv.setDocId("78112332");
dfv.setFieldId("9738851979"); dfv.setFieldId("9738851979");
dfv.setFieldValue(contract.getEmployeeName()); dfv.setFieldValue(contract.getEmployeeName());
...@@ -417,7 +433,7 @@ public class FascUtil { ...@@ -417,7 +433,7 @@ public class FascUtil {
dfv.setDocId("78112332"); dfv.setDocId("78112332");
dfv.setFieldId("2324432163"); dfv.setFieldId("2324432163");
dfv.setFieldValue(contract.getEmpIdcard()); dfv.setFieldValue(contract.getEmpIdcard());
docFieldValues.add(dfv); docFieldValues.add(dfv);*/
fillFieldValuesReq.setDocFieldValues(docFieldValues); fillFieldValuesReq.setDocFieldValues(docFieldValues);
fillFieldValuesReq.setAccessToken(accessToken); fillFieldValuesReq.setAccessToken(accessToken);
...@@ -431,6 +447,39 @@ public class FascUtil { ...@@ -431,6 +447,39 @@ public class FascUtil {
return R.failed("res无返回"); return R.failed("res无返回");
} }
/**
* 使用反射根据字段名获取合同对象中对应字段的值
* @param contract 合同对象
* @param fieldName 字段名
* @return 字段值
*/
private String getContractFieldValueByReflection(TEmployeeContractPre contract, String fieldName) {
if (contract == null || fieldName == null) {
return null;
}
try {
// 获取对应的getter方法名
String getterMethodName = "get" + Character.toUpperCase(fieldName.charAt(0)) + fieldName.substring(1);
// 获取方法并调用
java.lang.reflect.Method method = contract.getClass().getMethod(getterMethodName);
Object value = method.invoke(contract);
return value != null ? value.toString() : null;
} catch (Exception e) {
// 如果找不到对应的方法,尝试直接匹配字段名
try {
java.lang.reflect.Field field = contract.getClass().getDeclaredField(fieldName);
field.setAccessible(true);
Object value = field.get(contract);
return value != null ? value.toString() : null;
} catch (Exception ex) {
return null;
}
}
}
// 第三步:提交任务 // 第三步:提交任务
private R<String> submitTask(String requestId, OpenApiClient openApiClient, String accessToken) throws ApiException { private R<String> submitTask(String requestId, OpenApiClient openApiClient, String accessToken) throws ApiException {
SignTaskClient signTaskClient = new SignTaskClient(openApiClient); SignTaskClient signTaskClient = new SignTaskClient(openApiClient);
...@@ -612,14 +661,14 @@ public class FascUtil { ...@@ -612,14 +661,14 @@ public class FascUtil {
// 获取附件 // 获取附件
public boolean getFileByRequestId(TEmployeeContractPre contract, TFascPushLogService tFascPushLogService public boolean getFileByRequestId(TEmployeeContractPre contract, TFascPushLogService tFascPushLogService
, TAttaInfoMapper tAttaInfoMapper , OSSUtil ossUtil) throws ApiException { , TAttaInfoMapper tAttaInfoMapper, OSSUtil ossUtil) throws ApiException {
OpenApiClient openApiClient = new OpenApiClient(fascConfig.getAppId(), fascConfig.getAppSecret(), fascConfig.getAppUrl()); OpenApiClient openApiClient = new OpenApiClient(fascConfig.getAppId(), fascConfig.getAppSecret(), fascConfig.getAppUrl());
String accessToken = this.getFascToken(openApiClient); String accessToken = this.getFascToken(openApiClient);
SignTaskClient signTaskClient = new SignTaskClient(openApiClient) ; SignTaskClient signTaskClient = new SignTaskClient(openApiClient);
SignTaskGetFileReq signTaskGetFileReq = new SignTaskGetFileReq() ; SignTaskGetFileReq signTaskGetFileReq = new SignTaskGetFileReq();
signTaskGetFileReq.setSignTaskId(contract.getRequestId()) ; signTaskGetFileReq.setSignTaskId(contract.getRequestId());
signTaskGetFileReq.setAccessToken(accessToken) ; signTaskGetFileReq.setAccessToken(accessToken);
// 新增推送日志 // 新增推送日志
TFascPushLog pushLog = new TFascPushLog(); TFascPushLog pushLog = new TFascPushLog();
...@@ -632,7 +681,7 @@ public class FascUtil { ...@@ -632,7 +681,7 @@ public class FascUtil {
pushLog.setContractId(contract.getId()); pushLog.setContractId(contract.getId());
tFascPushLogService.save(pushLog); tFascPushLogService.save(pushLog);
BaseRes<SignTaskGetFileRes> res = signTaskClient.signTaskGetFile(signTaskGetFileReq) ; BaseRes<SignTaskGetFileRes> res = signTaskClient.signTaskGetFile(signTaskGetFileReq);
if (res != null) { if (res != null) {
pushLog.setReturnData(JSON.toJSONString(res, features)); pushLog.setReturnData(JSON.toJSONString(res, features));
pushLog.setTaskStatus(res.isSuccess() ? CommonConstants.ONE_STRING : CommonConstants.TWO_STRING); pushLog.setTaskStatus(res.isSuccess() ? CommonConstants.ONE_STRING : CommonConstants.TWO_STRING);
......
...@@ -498,6 +498,9 @@ ...@@ -498,6 +498,9 @@
WHEN a.AUDIT_STATUS =1 THEN "待审核" WHEN a.AUDIT_STATUS =1 THEN "待审核"
WHEN a.AUDIT_STATUS =2 THEN "审核通过" WHEN a.AUDIT_STATUS =2 THEN "审核通过"
WHEN a.AUDIT_STATUS =3 THEN "审核不通过" WHEN a.AUDIT_STATUS =3 THEN "审核不通过"
WHEN a.AUDIT_STATUS =4 THEN "签署中"
WHEN a.AUDIT_STATUS =5 THEN "撤销签署"
WHEN a.AUDIT_STATUS =6 THEN "签署失败"
ELSE a.AUDIT_STATUS END as "AUDIT_STATUS", ELSE a.AUDIT_STATUS END as "AUDIT_STATUS",
if(a.IN_USE = 0,'可用','不可用') IN_USE, if(a.IN_USE = 0,'可用','不可用') IN_USE,
if(a.IS_FILE = 0,'有附件','无附件') FILES, if(a.IS_FILE = 0,'有附件','无附件') FILES,
...@@ -575,6 +578,9 @@ ...@@ -575,6 +578,9 @@
WHEN a.AUDIT_STATUS =1 THEN "待审核" WHEN a.AUDIT_STATUS =1 THEN "待审核"
WHEN a.AUDIT_STATUS =2 THEN "审核通过" WHEN a.AUDIT_STATUS =2 THEN "审核通过"
WHEN a.AUDIT_STATUS =3 THEN "审核不通过" WHEN a.AUDIT_STATUS =3 THEN "审核不通过"
WHEN a.AUDIT_STATUS =4 THEN "签署中"
WHEN a.AUDIT_STATUS =5 THEN "撤销签署"
WHEN a.AUDIT_STATUS =6 THEN "签署失败"
ELSE a.AUDIT_STATUS END as "AUDIT_STATUS", ELSE a.AUDIT_STATUS END as "AUDIT_STATUS",
if(a.IN_USE = 0,'可用','不可用') IN_USE, if(a.IN_USE = 0,'可用','不可用') IN_USE,
if(a.IS_FILE = 0,'有附件','无附件') FILES, if(a.IS_FILE = 0,'有附件','无附件') FILES,
......
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