法务推送代码修正

This commit is contained in:
2026-06-16 13:21:32 +08:00
parent 5231cba8df
commit 58a605484d
2 changed files with 67 additions and 20 deletions
@@ -554,13 +554,20 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
contractLaunchMapper.updateContract(contract);
replaceArchiveChildren(id, archiveDto, currentUser.getUsername());
Map<String, Object> payload = buildArchivePayload(contract, archiveDto, false);
// 1. 构造归档报文(true → 附件路径转为法务系统路径)
// buildArchivePayload(..., true) 内部会调用 legalFileBridgeService.buildCollectionPayload
// 自动上传未缓存的附件到法务系统并缓存 legalFileUrl。
Map<String, Object> payload = buildArchivePayload(contract, archiveDto, true);
log.info("合同归档参数:{}", JsonUtils.toJson(payload));
insertLog(id, ContractLaunchConstants.ACTION_ARCHIVE, "合同归档", ContractLaunchConstants.ACTION_STATUS_PENDING, "合同归档接口当前先注释,使用测试按钮流转", payload, currentUser);
insertLog(id, ContractLaunchConstants.ACTION_ARCHIVE, "合同归档",
ContractLaunchConstants.ACTION_STATUS_PENDING,
"合同归档接口当前先注释,使用测试按钮流转",
payload, currentUser);
// TODO: 法务接口当前不可用,真实联调时打开下面调用即可
// payload 已构造好(含法务路径),直接用
// PushPayloadDTO requestDTO = new PushPayloadDTO();
// requestDTO.setPayload(buildArchivePayload(contract, archiveDto, true));
// requestDTO.setPayload(payload);
// dataCollectionPushService.collectContractArchive(requestDTO);
return getDetail(id);
@@ -2,6 +2,9 @@ package com.nbport.zgwl.partner.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nbport.zgwl.common.PageResult;
import com.nbport.zgwl.contractlaunch.utils.JsonUtils;
import com.nbport.zgwl.contractpush.dto.PushPayloadDTO;
import com.nbport.zgwl.contractpush.service.DataCollectionPushService;
import com.nbport.zgwl.exception.ServiceException;
import com.nbport.zgwl.partner.dto.PartnerContactDto;
import com.nbport.zgwl.partner.dto.PartnerManageDto;
@@ -35,6 +38,8 @@ public class PartnerManageServiceImpl implements PartnerManageService {
private final PartnerDataHandler partnerDataHandler;
private final DataCollectionPushService dataCollectionPushService;
/** 分页查询相对方列表(结果中会带上联系人数据) */
@Override
public PageResult<PartnerManageDto> queryPartnerList(PartnerQueryDto queryDto) {
@@ -141,7 +146,7 @@ public class PartnerManageServiceImpl implements PartnerManageService {
PartnerManageConstants.PARTNER_IS_DELETED_DELETED);
}
/** 模拟同步相对方到法务系统(本地测试用,TODO:替换为真实 collectOpposites 调用) */
/** 同步相对方到法务系统 */
@Override
@Transactional(rollbackFor = Exception.class)
public PartnerManageDto mockSyncPartner(Long customerSysid) {
@@ -153,31 +158,66 @@ public class PartnerManageServiceImpl implements PartnerManageService {
attachContacts(Collections.singletonList(partner));
LocalDateTime now = LocalDateTime.now();
String oppositeId = StrUtilHelper.hasText(partner.getOppositeId())
// 1. 构造报文并调用法务相对方信息采集接口
PushPayloadDTO payloadDTO =
PartnerSyncPayloadBuilder.buildCollectOppositesPayload(partner);
log.info("法务系统同步参数: {}", JsonUtils.toJson(payloadDTO));
// Map<String, Object> response = dataCollectionPushService.collectOpposites(payloadDTO);
//
// // 2. 解析法务返回结果
// // 响应格式: { "code": "200", "data": [{ "o_id": "11007", "jtId": "10256" }], "msg": "接收成功" }
// String returnedOppositeId = null; // jtId → oppositeId
// String syncMessage;
// Object codeObj = response.get("code");
// if (codeObj != null && ("200".equals(String.valueOf(codeObj)) || Integer.valueOf(200).equals(codeObj))) {
// Object dataObj = response.get("data");
// if (dataObj instanceof List) {
// List<?> dataList = (List<?>) dataObj;
// if (!dataList.isEmpty() && dataList.get(0) instanceof Map) {
// Map<?, ?> firstItem = (Map<?, ?>) dataList.get(0);
// Object jtId = firstItem.get("jtId");
// returnedOppositeId = jtId != null ? String.valueOf(jtId) : null;
// }
// }
// syncMessage = response.containsKey("msg")
// ? String.valueOf(response.get("msg"))
// : "相对方信息采集同步成功";
// } else {
// syncMessage = "相对方信息采集接口返回异常: code=" + codeObj
// + ", msg=" + response.get("msg");
// }
//
// // 3. 回写法务返回的 oppositeIdjtId → oppositeId
// String finalOppositeId = returnedOppositeId != null
// ? returnedOppositeId
// : partner.getOppositeId();
// partnerManageMapper.updatePartnerSyncInfo(
// customerSysid,
// finalOppositeId,
// returnedOppositeId != null
// ? PartnerManageConstants.SYNC_STATUS_SYNCED
// : PartnerManageConstants.SYNC_STATUS_FAILED,
// now,
// syncMessage,
// PartnerManageConstants.DEFAULT_OPERATOR,
// now);
String finalOppositeId = StrUtilHelper.hasText(partner.getOppositeId())
? partner.getOppositeId()
: PartnerIdUtils.buildGroupPartnerId();
PartnerSyncPayloadBuilder.buildCollectOppositesPayload(partner);
// PushPayloadDTO payloadDTO =
// PartnerSyncPayloadBuilder.buildCollectOppositesPayload(partner);
// Map<String, Object> response =
// dataCollectionPushService.collectOpposites(payloadDTO);
String syncMessage = "本地测试模拟同步成功。TODO:后续在这里调用相对方信息采集接口 collectOpposites。";
// // 从法务系统响应中取出返回的 oppositeId(比如 response 里有个 "jtId" 字段)
// String oppositeIdFromLawSystem = ...; // 具体 key 看法务返回的字段名
// String syncMessage = response.containsKey("msg")
// ? String.valueOf(response.get("msg"))
// : "相对方信息采集同步成功";
// // 回写法务返回的 oppositeId,而不是本地生成的
partnerManageMapper.updatePartnerSyncInfo(
customerSysid,
oppositeId,
finalOppositeId,
PartnerManageConstants.SYNC_STATUS_SYNCED,
now,
syncMessage,
PartnerManageConstants.DEFAULT_OPERATOR,
now);
return selectPartnerById(customerSysid);
}