Merge remote-tracking branch 'base-version/main' into dev
This commit is contained in:
@@ -10,13 +10,13 @@ public interface IWorkIntegrationErrorCodeConstants {
|
|||||||
ErrorCode IWORK_BASE_URL_MISSING = new ErrorCode(1_010_200_001, "iWork 集成未配置网关地址");
|
ErrorCode IWORK_BASE_URL_MISSING = new ErrorCode(1_010_200_001, "iWork 集成未配置网关地址");
|
||||||
ErrorCode IWORK_CONFIGURATION_INVALID = new ErrorCode(1_010_200_002,
|
ErrorCode IWORK_CONFIGURATION_INVALID = new ErrorCode(1_010_200_002,
|
||||||
"iWork 集成缺少必填配置(appId/userId/workflowId)或配置无效");
|
"iWork 集成缺少必填配置(appId/userId/workflowId)或配置无效");
|
||||||
ErrorCode IWORK_REGISTER_FAILED = new ErrorCode(1_010_200_003, "iWork 注册授权失败");
|
ErrorCode IWORK_REGISTER_FAILED = new ErrorCode(1_010_200_003, "iWork 注册授权失败:{}");
|
||||||
ErrorCode IWORK_APPLY_TOKEN_FAILED = new ErrorCode(1_010_200_004, "iWork 令牌申请失败");
|
ErrorCode IWORK_APPLY_TOKEN_FAILED = new ErrorCode(1_010_200_004, "iWork 令牌申请失败:{}");
|
||||||
ErrorCode IWORK_REMOTE_REQUEST_FAILED = new ErrorCode(1_010_200_005, "iWork 接口请求失败");
|
ErrorCode IWORK_REMOTE_REQUEST_FAILED = new ErrorCode(1_010_200_005, "iWork 接口请求失败:{}");
|
||||||
ErrorCode IWORK_USER_IDENTIFIER_MISSING = new ErrorCode(1_010_200_006, "缺少用户识别信息,无法调用 iWork 接口");
|
ErrorCode IWORK_USER_IDENTIFIER_MISSING = new ErrorCode(1_010_200_006, "缺少用户识别信息,无法调用 iWork 接口");
|
||||||
ErrorCode IWORK_OPERATOR_USER_MISSING = new ErrorCode(1_010_200_007, "缺少 iWork 操作人用户编号");
|
ErrorCode IWORK_OPERATOR_USER_MISSING = new ErrorCode(1_010_200_007, "缺少 iWork 操作人用户编号");
|
||||||
ErrorCode IWORK_WORKFLOW_ID_MISSING = new ErrorCode(1_010_200_008, "缺少 iWork 流程模板编号");
|
ErrorCode IWORK_WORKFLOW_ID_MISSING = new ErrorCode(1_010_200_008, "缺少 iWork 流程模板编号");
|
||||||
ErrorCode IWORK_ORG_IDENTIFIER_MISSING = new ErrorCode(1_010_200_009, "iWork 人力组织接口缺少认证标识");
|
ErrorCode IWORK_ORG_IDENTIFIER_MISSING = new ErrorCode(1_010_200_009, "iWork 人力组织接口缺少认证标识");
|
||||||
ErrorCode IWORK_ORG_REMOTE_FAILED = new ErrorCode(1_010_200_010, "iWork 人力组织接口请求失败{}");
|
ErrorCode IWORK_ORG_REMOTE_FAILED = new ErrorCode(1_010_200_010, "iWork 人力组织接口请求失败:{}");
|
||||||
ErrorCode IWORK_SEAL_REQUIRED_FIELD_MISSING = new ErrorCode(1_010_200_011, "缺少用印必填字段:{}");
|
ErrorCode IWORK_SEAL_REQUIRED_FIELD_MISSING = new ErrorCode(1_010_200_011, "缺少用印必填字段:{}");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,15 +850,26 @@ public class IWorkIntegrationServiceImpl implements IWorkIntegrationService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private ServiceException buildRemoteException(ErrorCode errorCode, int statusCode, String responseBody) {
|
private ServiceException buildRemoteException(ErrorCode errorCode, int statusCode, String responseBody) {
|
||||||
StringBuilder message = new StringBuilder(errorCode.getMsg());
|
String detail = buildRemoteErrorDetail(statusCode, responseBody);
|
||||||
|
if (!StringUtils.hasText(detail)) {
|
||||||
|
detail = "未知错误";
|
||||||
|
}
|
||||||
|
return ServiceExceptionUtil.exception(errorCode, detail);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String buildRemoteErrorDetail(int statusCode, String responseBody) {
|
||||||
|
StringBuilder detail = new StringBuilder();
|
||||||
if (statusCode > 0) {
|
if (statusCode > 0) {
|
||||||
message.append("(HTTP ").append(statusCode).append(")");
|
detail.append("HTTP ").append(statusCode);
|
||||||
}
|
}
|
||||||
String reason = extractReadableReason(responseBody);
|
String reason = extractReadableReason(responseBody);
|
||||||
if (StringUtils.hasText(reason)) {
|
if (StringUtils.hasText(reason)) {
|
||||||
message.append(":").append(reason);
|
if (detail.length() > 0) {
|
||||||
|
detail.append(",");
|
||||||
|
}
|
||||||
|
detail.append(reason);
|
||||||
}
|
}
|
||||||
return ServiceExceptionUtil.exception0(errorCode.getCode(), message.toString());
|
return detail.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private String extractReadableReason(String responseBody) {
|
private String extractReadableReason(String responseBody) {
|
||||||
|
|||||||
Reference in New Issue
Block a user