diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/constant/HcsFieldConstant.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/constant/HcsFieldConstant.java new file mode 100644 index 00000000..bfe5b372 --- /dev/null +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/constant/HcsFieldConstant.java @@ -0,0 +1,201 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.transport.constant; + +/** + * HCS(合同合规系统)列表查询 / 回调字段名常量(TMS 业务侧) + *

+ * 与 {@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() { + } +} diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsContractSpecSyncSupport.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsContractSpecSyncSupport.java index f4773258..6a1423c7 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsContractSpecSyncSupport.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsContractSpecSyncSupport.java @@ -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 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); diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsProjectSyncSupport.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsProjectSyncSupport.java index 0154bff2..103d138b 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsProjectSyncSupport.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsProjectSyncSupport.java @@ -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> result = hcsClient.projectList(query); diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsReconSupport.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsReconSupport.java index fdf1765b..b3c31662 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsReconSupport.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsReconSupport.java @@ -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);