文件问题
This commit is contained in:
+45
-6
@@ -2,6 +2,7 @@ package com.nbport.zgwl.contractlaunch.service;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.nbport.zgwl.common.PageResult;
|
||||
import com.nbport.zgwl.contractlaunch.dto.ContractLaunchApproveDto;
|
||||
import com.nbport.zgwl.contractlaunch.dto.ContractLaunchArchiveDto;
|
||||
@@ -16,6 +17,7 @@ import com.nbport.zgwl.contractlaunch.service.ContractLaunchLegalFileBridgeServi
|
||||
import com.nbport.zgwl.contractlaunch.mapper.ContractLaunchMapper;
|
||||
import com.nbport.zgwl.contractlaunch.utils.ContractLaunchCodeUtils;
|
||||
import com.nbport.zgwl.contractlaunch.utils.ContractLaunchConstants;
|
||||
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.contractpush.service.SettlementPushService;
|
||||
@@ -194,6 +196,7 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ContractLaunchDto submitToLaw(Long id) {
|
||||
|
||||
ContractLaunchDto contract = getDetail(id);
|
||||
if (!canSubmit(contract.getStatus())) {
|
||||
throw new ServiceException("当前状态不允许提交法务");
|
||||
@@ -207,6 +210,7 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
||||
contractLaunchMapper.updateContract(contract);
|
||||
|
||||
Map<String, Object> settlementPayload = buildSettlementPushPayload(contract);
|
||||
log.info("结算参数 JSON:{}", JsonUtils.toJson(settlementPayload));
|
||||
insertLog(id, ContractLaunchConstants.ACTION_SUBMIT, "提交法务", ContractLaunchConstants.ACTION_STATUS_PENDING, "合同已提交法务接口,当前先保留 mock 流程", settlementPayload, currentUser);
|
||||
|
||||
// TODO: 法务接口当前不可用,真实联调时打开下面调用即可
|
||||
@@ -428,7 +432,7 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
||||
SysUserEntity currentUser = adminSecurityManage.getUser();
|
||||
Map<String, Object> payload = buildDataCollectionContractPayload(contract);
|
||||
insertLog(id, ContractLaunchConstants.ACTION_COLLECT, "模拟合同采集", ContractLaunchConstants.ACTION_STATUS_PENDING, "合同采集接口当前先注释,使用测试按钮流转", payload, currentUser);
|
||||
|
||||
log.info("测试采集提交参数:{}", JsonUtils.toJson(payload));
|
||||
// TODO: 法务接口当前不可用,真实联调时打开下面调用即可
|
||||
// PushPayloadDTO requestDTO = new PushPayloadDTO();
|
||||
// requestDTO.setPayload(payload);
|
||||
@@ -1090,9 +1094,9 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
||||
map.put("planSubjectName", plan.getPlanSubjectName());
|
||||
return map;
|
||||
}).collect(Collectors.toList()));
|
||||
payload.put("contractText", buildSettlementFilePayloadList(contract, ContractLaunchConstants.FILE_CATEGORY_BODY));
|
||||
payload.put("otherAttach", buildSettlementFilePayloadList(contract, ContractLaunchConstants.FILE_CATEGORY_OTHER));
|
||||
payload.put("contractGistFile", buildSettlementFilePayloadList(contract, ContractLaunchConstants.FILE_CATEGORY_GIST));
|
||||
// payload.put("contractText", buildSettlementFilePayloadList(contract, ContractLaunchConstants.FILE_CATEGORY_BODY));
|
||||
// payload.put("otherAttach", buildSettlementFilePayloadList(contract, ContractLaunchConstants.FILE_CATEGORY_OTHER));
|
||||
// payload.put("contractGistFile", buildSettlementFilePayloadList(contract, ContractLaunchConstants.FILE_CATEGORY_GIST));
|
||||
return payload;
|
||||
}
|
||||
|
||||
@@ -1101,39 +1105,72 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
||||
Map<String, Object> payload = new LinkedHashMap<>();
|
||||
payload.put("c_name", contract.getContractName());
|
||||
payload.put("c_code", contract.getLawContractCode() == null || contract.getLawContractCode().isBlank() ? contract.getContractCode() : contract.getLawContractCode());
|
||||
payload.put("c_weNames", contract.getCompanyName());
|
||||
// TODO: c_weNames 传机构编码,当前用 signingSubjectCode(签约主体编码),若为空则用 orgId
|
||||
payload.put("c_weNames", contract.getSigningSubjectCode() != null && !contract.getSigningSubjectCode().isBlank()
|
||||
? contract.getSigningSubjectCode()
|
||||
: contract.getOrgId());
|
||||
// TODO: c_oppositeNames 应传集团返回的相对方ID,多个用逗号分隔,当前暂时传摘要占位
|
||||
payload.put("c_oppositeNames", contract.getCounterpartySummary());
|
||||
payload.put("c_textSource", contract.getTextSource());
|
||||
// c_needAmendments(是否需修订条款):DTO 暂无此字段,默认传 0(否)
|
||||
payload.put("c_needAmendments", "0");
|
||||
payload.put("c_mainContent", contract.getPrimaryContent());
|
||||
payload.put("c_direction", contract.getPaymentDirection());
|
||||
payload.put("c_method", contract.getValuationMode());
|
||||
payload.put("c_subjectAMT", contract.getContractAmount());
|
||||
// 合同标的额:计价方式=固定总价时必填
|
||||
if ("1".equals(contract.getValuationMode()) && contract.getContractAmount() != null) {
|
||||
payload.put("c_subjectAMT", contract.getContractAmount());
|
||||
} else {
|
||||
payload.put("c_subjectAMT", null);
|
||||
}
|
||||
payload.put("c_currency", contract.getCurrencyName());
|
||||
// TODO: c_estimatedAMT(预估金额)DTO 暂无此字段,计价方式=预估总价时需传
|
||||
payload.put("c_estimatedAMT", null);
|
||||
payload.put("c_amountExplain", contract.getAmountExplain());
|
||||
// 额外金额
|
||||
payload.put("c_additional", contract.getEwAmountType());
|
||||
if (contract.getDjAmount() != null) payload.put("c_dAMT", contract.getDjAmount());
|
||||
if (contract.getYjAmount() != null) payload.put("c_yAMT", contract.getYjAmount());
|
||||
if (contract.getYfkAmount() != null) payload.put("c_yfkAMT", contract.getYfkAmount());
|
||||
if (contract.getBzjAmount() != null) payload.put("c_bzjAMT", contract.getBzjAmount());
|
||||
payload.put("c_type", contract.getContractTypeCode());
|
||||
payload.put("c_termType", contract.getContractPeriodType());
|
||||
payload.put("c_termExplain", contract.getPeriodExplain());
|
||||
payload.put("c_termStart", contract.getEffectiveStart());
|
||||
payload.put("c_termEnd", contract.getEffectiveEnd());
|
||||
payload.put("c_qyztGAT", contract.getIsSgat());
|
||||
payload.put("c_qyztSW", contract.getContractNature());
|
||||
payload.put("c_executor", contract.getExecutorAccount());
|
||||
payload.put("c_openBidding", contract.getIsOpenBidding());
|
||||
// 关联招标号:公开招标选是时必填
|
||||
if (Integer.valueOf(1).equals(contract.getIsOpenBidding()) && contract.getBiddingNo() != null) {
|
||||
payload.put("c_biddingNo", contract.getBiddingNo());
|
||||
} else {
|
||||
payload.put("c_biddingNo", null);
|
||||
}
|
||||
payload.put("c_currentBudget", contract.getIsYearBudget());
|
||||
payload.put("c_major", contract.getIsMajorContract());
|
||||
payload.put("c_signMethod", contract.getSealType());
|
||||
// TODO: c_authAttachs(授权委托书附件)当前暂无此数据,传空数组
|
||||
payload.put("c_authAttachs", Collections.emptyList());
|
||||
payload.put("c_creator", contract.getInitiator());
|
||||
payload.put("c_creatorPhone", contract.getCreatorPhone());
|
||||
payload.put("c_createDept", contract.getInitiatorDept());
|
||||
payload.put("c_creationTime", contract.getCreateTime());
|
||||
payload.put("c_signExplain", contract.getContractGistRemark());
|
||||
payload.put("c_zw", buildCollectionFilePayloadList(contract, ContractLaunchConstants.FILE_CATEGORY_BODY));
|
||||
payload.put("c_attachs", buildCollectionFilePayloadList(contract, ContractLaunchConstants.FILE_CATEGORY_OTHER));
|
||||
payload.put("c_signAttachs", buildCollectionFilePayloadList(contract, ContractLaunchConstants.FILE_CATEGORY_GIST));
|
||||
payload.put("c_lxPlan", contract.getPerformancePlans());
|
||||
// 用印信息
|
||||
Map<String, Object> seal = new LinkedHashMap<>();
|
||||
seal.put("seal_isSeal", "1");
|
||||
seal.put("seal_approveSame", "1");
|
||||
seal.put("seal_type", contract.getSealType());
|
||||
seal.put("seal_quantity", "1");
|
||||
seal.put("seal_date", contract.getSignDate());
|
||||
payload.put("c_seal", seal);
|
||||
// 签订信息
|
||||
Map<String, Object> sign = new LinkedHashMap<>();
|
||||
sign.put("sign_isSign", "1");
|
||||
sign.put("sign_date", contract.getSignDate());
|
||||
@@ -1141,6 +1178,8 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
||||
sign.put("sign_attachs", buildCollectionFilePayloadList(contract, ContractLaunchConstants.FILE_CATEGORY_SIGNED));
|
||||
sign.put("sign_executor", contract.getExecutorAccount());
|
||||
payload.put("c_sign", sign);
|
||||
// 时间戳
|
||||
payload.put("timeStamp", String.valueOf(System.currentTimeMillis()));
|
||||
return payload;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.nbport.zgwl.contractlaunch.utils;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
||||
public class JsonUtils {
|
||||
|
||||
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
|
||||
|
||||
static {
|
||||
// 注册 Java8 时间模块,解决 LocalDateTime 序列化失败
|
||||
JavaTimeModule javaTimeModule = new JavaTimeModule();
|
||||
// 配置 LocalDateTime 格式化输出:yyyy-MM-dd HH:mm:ss
|
||||
javaTimeModule.addSerializer(LocalDateTime.class,
|
||||
new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
||||
|
||||
OBJECT_MAPPER.registerModule(javaTimeModule);
|
||||
// 美化输出(可选,让日志更好看)
|
||||
OBJECT_MAPPER.writerWithDefaultPrettyPrinter();
|
||||
}
|
||||
|
||||
public static String toJson(Object obj) {
|
||||
if (obj == null) {
|
||||
return "null";
|
||||
}
|
||||
try {
|
||||
return OBJECT_MAPPER.writeValueAsString(obj);
|
||||
} catch (Exception e) {
|
||||
// 序列化失败时返回 toString,保证不报错
|
||||
return obj.toString();
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Reference in New Issue
Block a user