:feat: HCS创建单位改为固定组织配置(creator-unit-id/name,项目立项fd_creator_unit与fd_avail_units共用,环境变量可覆盖)

This commit is contained in:
刘泉佳
2026-10-10 18:58:30 +08:00
parent 24a594185c
commit 9ba9fe4dd8
3 changed files with 43 additions and 11 deletions
@@ -25,13 +25,13 @@
*/
package org.springblade.transport.support.hcs;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.hcs.config.HcsProperties;
import org.springblade.hcs.dto.HcsBpmOperationDTO;
import org.springblade.hcs.dto.HcsFormSaveVO;
import org.springblade.hcs.dto.HcsPageQueryDTO;
import org.springblade.hcs.dto.HcsPageVO;
import org.springblade.hcs.dto.HcsProjectAddDTO;
@@ -40,7 +40,6 @@ import org.springblade.hcs.dto.HcsProjectPropsDTO;
import org.springblade.hcs.dto.HcsProjectUpdateDTO;
import org.springblade.hcs.dto.HcsProjectVO;
import org.springblade.hcs.dto.HcsRefVO;
import org.springblade.hcs.dto.HcsFormSaveVO;
import org.springblade.hcs.dto.HcsResult;
import org.springblade.hcs.dto.HcsSaveOptionDTO;
import org.springblade.hcs.dto.HcsUserRefVO;
@@ -172,8 +171,9 @@ public class HcsProjectSyncSupport {
props.setFdProSimpleName(projectApply.getProjectShortName());
// 【必填】项目编号:ProjectApply.projectCode(判重候选键)
props.setFdNum(projectApply.getProjectCode());
// 创建单位:TMS 开题部门名称(HCS 组织 fdId 与 TMS 不同源,先传名称,§9-U2)
props.setFdCreatorUnit(HcsRefVO.ofName(projectApply.getBusinessDeptName()));
// 创建单位:固定取配置 thirdParty.hcs.creator-unit-id/name(HCS 组织主数据,§9-U2;任一未配置回退开题部门名称仅传 fdName,其他合同接口同用此配置)
HcsRefVO creatorUnit = hcsProperties.resolveCreatorUnit(projectApply.getBusinessDeptName());
props.setFdCreatorUnit(creatorUnit);
// 项目负责人:负责人登录名 {fdLoginName}(§9-U2)
props.setFdHead(resolveUserRef(projectApply.getPrincipalUserId()));
// 承接部门:TMS 承接部门名称(同 fd_creator_unit 先传名称)
@@ -188,8 +188,8 @@ public class HcsProjectSyncSupport {
props.setFdProContent(projectApply.getSituationRemark());
// 是否可用:固定 true
props.setFdIsAvailable(true);
// 可用单位列表:与创建单位一致,先传名称
props.setFdAvailUnits(List.of(HcsRefVO.ofName(projectApply.getBusinessDeptName())));
// 可用单位列表:与创建单位一致(同走 creator-unit 配置)
props.setFdAvailUnits(List.of(creatorUnit));
// 结算类型:TMS settlementMode 原值(字典映射待联调,§9-U3)
props.setFdSettlementType(projectApply.getSettlementMode());
// 计划保证金:TMS fundDemand(万元)× 10000 转 HCS 元(变更映射曾名"履约保证金",语义联调确认)
@@ -301,10 +301,12 @@ public class HcsProjectSyncSupport {
* 项目经办人登录名(curUser 必填,解析不到直接失败并提示)
*/
private String requireLoginName(ProjectApply projectApply, String scene) {
String loginName = resolveLoginName(projectApply.getHandlerUserId());
/*String loginName = resolveLoginName(projectApply.getHandlerUserId());
if (StringUtil.isBlank(loginName)) {
throw new HcsException("HCS项目立项推送失败(" + scene + "),经办人登录名解析不到(handlerUserId=" + projectApply.getHandlerUserId() + ",§9-U2)");
}
}*/
String loginName = "srvadmin";
return loginName;
}