:refactor: 抽取HCS查询与回调字段名常量类
This commit is contained in:
+201
@@ -0,0 +1,201 @@
|
||||
/**
|
||||
* BladeX Commercial License Agreement
|
||||
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
|
||||
* <p>
|
||||
* Use of this software is governed by the Commercial License Agreement
|
||||
* obtained after purchasing a license from BladeX.
|
||||
* <p>
|
||||
* 1. This software is for development use only under a valid license
|
||||
* from BladeX.
|
||||
* <p>
|
||||
* 2. Redistribution of this software's source code to any third party
|
||||
* without a commercial license is strictly prohibited.
|
||||
* <p>
|
||||
* 3. Licensees may copyright their own code but cannot use segments
|
||||
* from this software for such purposes. Copyright of this software
|
||||
* remains with BladeX.
|
||||
* <p>
|
||||
* Using this software signifies agreement to this License, and the software
|
||||
* must not be used for illegal purposes.
|
||||
* <p>
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
|
||||
* not liable for any claims arising from secondary or illegal development.
|
||||
* <p>
|
||||
* Author: Chill Zhuang (bladejava@qq.com)
|
||||
*/
|
||||
package org.springblade.transport.constant;
|
||||
|
||||
/**
|
||||
* HCS(合同合规系统)列表查询 / 回调字段名常量(TMS 业务侧)
|
||||
* <p>
|
||||
* 与 {@link HcsContractFieldConstant}(C103-1/C103-11 表单字段)区分;
|
||||
* 项目立项查询用下划线字段名,合同/开票查询与 B103 回调用驼峰字段名,以实际接口为准。
|
||||
*
|
||||
* @author Chill
|
||||
*/
|
||||
public final class HcsFieldConstant {
|
||||
|
||||
// ==================== C102-3 项目立项列表查询(下划线字段名) ====================
|
||||
|
||||
/**
|
||||
* 项目ID
|
||||
*/
|
||||
public static final String PROJ_FD_ID = "fd_id";
|
||||
|
||||
/**
|
||||
* 项目编号(判重条件键)
|
||||
*/
|
||||
public static final String PROJ_FD_NUM = "fd_num";
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
public static final String PROJ_FD_PRO_NAME = "fd_pro_name";
|
||||
|
||||
/**
|
||||
* 创建时间(排序字段)
|
||||
*/
|
||||
public static final String PROJ_FD_CREATE_TIME = "fd_create_time";
|
||||
|
||||
// ==================== C103-3 合同列表查询(驼峰字段名) ====================
|
||||
|
||||
/**
|
||||
* 合同ID
|
||||
*/
|
||||
public static final String CONTRACT_FD_ID = "fdId";
|
||||
|
||||
/**
|
||||
* 合同标题
|
||||
*/
|
||||
public static final String CONTRACT_FD_SUBJECT = "fdSubject";
|
||||
|
||||
/**
|
||||
* 合同编号(查询条件键)
|
||||
*/
|
||||
public static final String CONTRACT_FD_NUMBER = "fdNumber";
|
||||
|
||||
/**
|
||||
* 合同分类层级ID
|
||||
*/
|
||||
public static final String CONTRACT_FD_CATE_HIERARCHY_ID = "fdCateHierarchyId";
|
||||
|
||||
// ==================== C111-1 开票登记列表查询(驼峰字段名) ====================
|
||||
|
||||
/**
|
||||
* 单据ID
|
||||
*/
|
||||
public static final String INVOICE_FD_ID = "fdId";
|
||||
|
||||
/**
|
||||
* 单据编号(查询条件键)
|
||||
*/
|
||||
public static final String INVOICE_FD_NUMBER = "fdNumber";
|
||||
|
||||
/**
|
||||
* 开票日期
|
||||
*/
|
||||
public static final String INVOICE_FD_BILL_DATE = "fdBillDate";
|
||||
|
||||
/**
|
||||
* 合同编号
|
||||
*/
|
||||
public static final String INVOICE_FD_CONTRACT_NUMBER = "fdContractNumber";
|
||||
|
||||
/**
|
||||
* 开票金额
|
||||
*/
|
||||
public static final String INVOICE_FD_INVOICE_AMOUNT = "fdInvoiceAmount";
|
||||
|
||||
/**
|
||||
* 单据状态
|
||||
*/
|
||||
public static final String INVOICE_FD_STATUS = "fdStatus";
|
||||
|
||||
// ==================== B103 特批结果回调候选字段(报文未定稿,多候选解析,§6-U1) ====================
|
||||
|
||||
/**
|
||||
* 合同编号(驼峰)
|
||||
*/
|
||||
public static final String SPEC_CB_FD_CONTRACT_NO = "fdContractNo";
|
||||
|
||||
/**
|
||||
* 合同编号
|
||||
*/
|
||||
public static final String SPEC_CB_CONTRACT_NO = "contractNo";
|
||||
|
||||
/**
|
||||
* 合同编号(下划线)
|
||||
*/
|
||||
public static final String SPEC_CB_FD_CONTRACT_NO_SNAKE = "fd_contract_no";
|
||||
|
||||
/**
|
||||
* 合同编号(fd 模板字段,照 C103-3 查询惯例)
|
||||
*/
|
||||
public static final String SPEC_CB_FD_NUMBER = "fdNumber";
|
||||
|
||||
/**
|
||||
* 单据ID(驼峰)
|
||||
*/
|
||||
public static final String SPEC_CB_FD_ID = "fdId";
|
||||
|
||||
/**
|
||||
* 特批流程ID(驼峰)
|
||||
*/
|
||||
public static final String SPEC_CB_FD_SPEC_ID = "fdSpecId";
|
||||
|
||||
/**
|
||||
* 特批流程ID(下划线)
|
||||
*/
|
||||
public static final String SPEC_CB_FD_SPEC_ID_SNAKE = "fd_spec_id";
|
||||
|
||||
/**
|
||||
* 特批流程ID(specFdId)
|
||||
*/
|
||||
public static final String SPEC_CB_SPEC_FD_ID = "specFdId";
|
||||
|
||||
/**
|
||||
* 审批结果
|
||||
*/
|
||||
public static final String SPEC_CB_RESULT = "result";
|
||||
|
||||
/**
|
||||
* 审批结果(驼峰)
|
||||
*/
|
||||
public static final String SPEC_CB_FD_RESULT = "fdResult";
|
||||
|
||||
/**
|
||||
* 审批结果(下划线)
|
||||
*/
|
||||
public static final String SPEC_CB_FD_RESULT_SNAKE = "fd_result";
|
||||
|
||||
/**
|
||||
* 审批结果(approvalResult)
|
||||
*/
|
||||
public static final String SPEC_CB_APPROVAL_RESULT = "approvalResult";
|
||||
|
||||
/**
|
||||
* 状态(兜底候选)
|
||||
*/
|
||||
public static final String SPEC_CB_STATUS = "status";
|
||||
|
||||
/**
|
||||
* 合同编号候选键(依次取首个非空)
|
||||
*/
|
||||
public static final String[] SPEC_CB_CONTRACT_NO_KEYS = {SPEC_CB_FD_CONTRACT_NO, SPEC_CB_CONTRACT_NO,
|
||||
SPEC_CB_FD_CONTRACT_NO_SNAKE, SPEC_CB_FD_NUMBER};
|
||||
|
||||
/**
|
||||
* 特批流程ID候选键(依次取首个非空)
|
||||
*/
|
||||
public static final String[] SPEC_CB_SPEC_FD_ID_KEYS = {SPEC_CB_FD_ID, SPEC_CB_FD_SPEC_ID,
|
||||
SPEC_CB_FD_SPEC_ID_SNAKE, SPEC_CB_SPEC_FD_ID};
|
||||
|
||||
/**
|
||||
* 审批结果候选键(依次取首个非空)
|
||||
*/
|
||||
public static final String[] SPEC_CB_RESULT_KEYS = {SPEC_CB_RESULT, SPEC_CB_FD_RESULT,
|
||||
SPEC_CB_FD_RESULT_SNAKE, SPEC_CB_APPROVAL_RESULT, SPEC_CB_STATUS};
|
||||
|
||||
private HcsFieldConstant() {
|
||||
}
|
||||
}
|
||||
+4
-3
@@ -38,6 +38,7 @@ import org.springblade.hcs.dto.HcsSpecContractSaveDTO;
|
||||
import org.springblade.hcs.dto.HcsFormSaveVO;
|
||||
import org.springblade.hcs.exception.HcsException;
|
||||
import org.springblade.hcs.feign.IHcsClient;
|
||||
import org.springblade.transport.constant.HcsFieldConstant;
|
||||
import org.springblade.transport.constant.HcsSyncConstant;
|
||||
import org.springblade.transport.mapper.ContractManageMapper;
|
||||
import org.springblade.transport.mapper.HcsContractCheckLogMapper;
|
||||
@@ -162,9 +163,9 @@ public class HcsContractSpecSyncSupport {
|
||||
*/
|
||||
public String handleSpecCallback(Map<String, Object> body) {
|
||||
String raw = body == null ? "" : JSONUtil.toJsonStr(body);
|
||||
String contractNo = firstNonBlank(body, "fdContractNo", "contractNo", "fd_contract_no", "fdNumber");
|
||||
String specFdId = firstNonBlank(body, "fdId", "fdSpecId", "fd_spec_id", "specFdId");
|
||||
String resultText = firstNonBlank(body, "result", "fdResult", "fd_result", "approvalResult", "status");
|
||||
String contractNo = firstNonBlank(body, HcsFieldConstant.SPEC_CB_CONTRACT_NO_KEYS);
|
||||
String specFdId = firstNonBlank(body, HcsFieldConstant.SPEC_CB_SPEC_FD_ID_KEYS);
|
||||
String resultText = firstNonBlank(body, HcsFieldConstant.SPEC_CB_RESULT_KEYS);
|
||||
ContractManage contractManage = locateContract(contractNo, specFdId);
|
||||
if (contractManage == null) {
|
||||
log.warn("B103特批结果回传未定位到合同:contractNo={},specFdId={},报文已留痕", contractNo, specFdId);
|
||||
|
||||
+4
-3
@@ -45,6 +45,7 @@ import org.springblade.hcs.dto.HcsSaveOptionDTO;
|
||||
import org.springblade.hcs.dto.HcsUserRefVO;
|
||||
import org.springblade.hcs.exception.HcsException;
|
||||
import org.springblade.hcs.feign.IHcsClient;
|
||||
import org.springblade.transport.constant.HcsFieldConstant;
|
||||
import org.springblade.transport.constant.HcsSyncConstant;
|
||||
import org.springblade.transport.mapper.ProjectApplyMapper;
|
||||
import org.springblade.transport.pojo.entity.ProjectApply;
|
||||
@@ -216,12 +217,12 @@ public class HcsProjectSyncSupport {
|
||||
private String findExistFdId(ProjectApply projectApply) {
|
||||
HcsPageQueryDTO query = new HcsPageQueryDTO();
|
||||
// C102-3 入参 columns 用下划线字段名
|
||||
query.setColumns(List.of("fd_id", "fd_num"));
|
||||
query.setColumns(List.of(HcsFieldConstant.PROJ_FD_ID, HcsFieldConstant.PROJ_FD_NUM));
|
||||
// 判重条件:项目编号精确匹配
|
||||
query.setConditions(Map.of("fd_num", Objects.toString(projectApply.getProjectCode(), "")));
|
||||
query.setConditions(Map.of(HcsFieldConstant.PROJ_FD_NUM, Objects.toString(projectApply.getProjectCode(), "")));
|
||||
query.setOffset(0);
|
||||
query.setPageSize(10);
|
||||
query.setSorts(Map.of("fd_create_time", "desc"));
|
||||
query.setSorts(Map.of(HcsFieldConstant.PROJ_FD_CREATE_TIME, "desc"));
|
||||
// 查询需携带当前操作人(复用单据承办人登录名)
|
||||
query.setCurUser(HcsUserRefVO.ofLoginName(requireLoginName(projectApply, "C102-3")));
|
||||
HcsResult<HcsPageVO<HcsProjectVO>> result = hcsClient.projectList(query);
|
||||
|
||||
+10
-6
@@ -33,6 +33,7 @@ import org.springblade.hcs.dto.HcsPageQueryDTO;
|
||||
import org.springblade.hcs.dto.HcsResult;
|
||||
import org.springblade.hcs.exception.HcsException;
|
||||
import org.springblade.hcs.feign.IHcsClient;
|
||||
import org.springblade.transport.constant.HcsFieldConstant;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
@@ -63,9 +64,9 @@ public class HcsReconSupport {
|
||||
public HcsResult<?> reconProject(String projectCode) {
|
||||
HcsPageQueryDTO query = new HcsPageQueryDTO();
|
||||
// C102-3 入参 columns 用下划线字段名
|
||||
query.setColumns(List.of("fd_id", "fd_num", "fd_pro_name"));
|
||||
query.setColumns(List.of(HcsFieldConstant.PROJ_FD_ID, HcsFieldConstant.PROJ_FD_NUM, HcsFieldConstant.PROJ_FD_PRO_NAME));
|
||||
// 项目编号精确匹配
|
||||
query.setConditions(Map.of("fd_num", Objects.toString(projectCode, "")));
|
||||
query.setConditions(Map.of(HcsFieldConstant.PROJ_FD_NUM, Objects.toString(projectCode, "")));
|
||||
query.setOffset(0);
|
||||
query.setPageSize(50);
|
||||
HcsResult<?> result = hcsClient.projectList(query);
|
||||
@@ -80,9 +81,10 @@ public class HcsReconSupport {
|
||||
*/
|
||||
public HcsResult<?> reconContract(String contractNo) {
|
||||
HcsPageQueryDTO query = new HcsPageQueryDTO();
|
||||
query.setColumns(List.of("fdId", "fdSubject", "fdNumber", "fdCateHierarchyId"));
|
||||
query.setColumns(List.of(HcsFieldConstant.CONTRACT_FD_ID, HcsFieldConstant.CONTRACT_FD_SUBJECT,
|
||||
HcsFieldConstant.CONTRACT_FD_NUMBER, HcsFieldConstant.CONTRACT_FD_CATE_HIERARCHY_ID));
|
||||
// 合同编号精确匹配(§9-U4 查询能力联调确认)
|
||||
query.setConditions(Map.of("fdNumber", Objects.toString(contractNo, "")));
|
||||
query.setConditions(Map.of(HcsFieldConstant.CONTRACT_FD_NUMBER, Objects.toString(contractNo, "")));
|
||||
query.setOffset(0);
|
||||
query.setPageSize(50);
|
||||
HcsResult<?> result = hcsClient.contractList(query);
|
||||
@@ -119,9 +121,11 @@ public class HcsReconSupport {
|
||||
*/
|
||||
public HcsResult<?> reconInvoiceRegistration(String applicationNo) {
|
||||
HcsPageQueryDTO query = new HcsPageQueryDTO();
|
||||
query.setColumns(List.of("fdId", "fdNumber", "fdBillDate", "fdContractNumber", "fdInvoiceAmount", "fdStatus"));
|
||||
query.setColumns(List.of(HcsFieldConstant.INVOICE_FD_ID, HcsFieldConstant.INVOICE_FD_NUMBER,
|
||||
HcsFieldConstant.INVOICE_FD_BILL_DATE, HcsFieldConstant.INVOICE_FD_CONTRACT_NUMBER,
|
||||
HcsFieldConstant.INVOICE_FD_INVOICE_AMOUNT, HcsFieldConstant.INVOICE_FD_STATUS));
|
||||
// 单据编号精确匹配(§9-U4 查询能力联调确认)
|
||||
query.setConditions(Map.of("fdNumber", Objects.toString(applicationNo, "")));
|
||||
query.setConditions(Map.of(HcsFieldConstant.INVOICE_FD_NUMBER, Objects.toString(applicationNo, "")));
|
||||
query.setOffset(0);
|
||||
query.setPageSize(50);
|
||||
HcsResult<?> result = hcsClient.invoiceRegistrationList(query);
|
||||
|
||||
Reference in New Issue
Block a user