:feat: 新增项目金蝶同步结果回调并回填金蝶ID

- 新增 /hcs/projectLegal/result 免登回调端点(D902),按项目编号定位回填金蝶项目ID/编号,原文留痕 blade_hcs_check_log
- 合同 contractLegal/result 回调成功分支回填金蝶合同ID
- 项目/合同金蝶回调成功与失败均追加变更记录(changeRecordJson)
- 项目立项/合同列表支持按是否同步金蝶、是否同步合规筛选
- 新增增量SQL:blade_project_apply.kingdee_id/kingdee_number、blade_contract_manage.kingdee_id
This commit is contained in:
刘泉佳
2026-10-20 11:05:11 +08:00
parent 6e6e5913ba
commit fac4c112aa
13 changed files with 394 additions and 4 deletions
@@ -0,0 +1,78 @@
/**
* 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.hcs.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 项目金蝶同步完成后合规系统回传 TMS 的结果报文(D902,POST /hcs/projectLegal/result,iPaaS 网关 /gwzh/HTHG/projectLegal/result)
* <p>
* 定位项目用 projectCode(ERP 项目编号,对应 C102 请求中的 fd_num),
* requestId 仅是 C102 请求头 X-ERP-Request-Id 原样回传、不能用于定位;
* 未知或过期的 requestId 合规侧返回失败。
*
* @author Chill
*/
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class HcsProjectLegalResultDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* ERP 项目编号(TMS blade_project_apply.project_code,对应 C102 请求中的 fd_num,定位项目用)
*/
private String projectCode;
/**
* C102 请求头 X-ERP-Request-Id 的值,原样返回(不用于定位)
*/
private String requestId;
/**
* 金蝶同步成功传 true,失败传 false
*/
private Boolean success;
/**
* 金蝶项目 ID;成功时用于回填保存
*/
private String kingdeeId;
/**
* 金蝶项目编号;成功时用于回填保存
*/
private String projectNumber;
/**
* 金蝶同步失败原因;失败时建议填写
*/
private String reason;
/**
* 来源系统标识,约定传 WCCK(最长 64 字符)
*/
private String sourceSystem;
}