增加两个字段
This commit is contained in:
@@ -121,6 +121,12 @@ public class ContractLaunchDto implements Serializable {
|
|||||||
/** 计价方式(0:无金额, 1:固定总价, 2:预估总价, 3:无法预估总价, 4:固定单价) */
|
/** 计价方式(0:无金额, 1:固定总价, 2:预估总价, 3:无法预估总价, 4:固定单价) */
|
||||||
private String valuationMode;
|
private String valuationMode;
|
||||||
|
|
||||||
|
/** 是否需修订条款(1:是, 0:否) */
|
||||||
|
private String needAmendments;
|
||||||
|
|
||||||
|
/** 预估金额(计价方式为预估总价时填写) */
|
||||||
|
private Double estimatedAmount;
|
||||||
|
|
||||||
// ==================== 签署相关 ====================
|
// ==================== 签署相关 ====================
|
||||||
|
|
||||||
/** 签订方式(GZ:公章, HTZYZ:合同专用章, 等) */
|
/** 签订方式(GZ:公章, HTZYZ:合同专用章, 等) */
|
||||||
|
|||||||
+35
-8
@@ -600,6 +600,8 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
|||||||
target.setPrimaryContent(source.getPrimaryContent());
|
target.setPrimaryContent(source.getPrimaryContent());
|
||||||
target.setAmountExplain(source.getAmountExplain());
|
target.setAmountExplain(source.getAmountExplain());
|
||||||
target.setValuationMode(source.getValuationMode());
|
target.setValuationMode(source.getValuationMode());
|
||||||
|
target.setNeedAmendments(source.getNeedAmendments());
|
||||||
|
target.setEstimatedAmount(source.getEstimatedAmount());
|
||||||
target.setSealType(source.getSealType());
|
target.setSealType(source.getSealType());
|
||||||
target.setTextSource(source.getTextSource());
|
target.setTextSource(source.getTextSource());
|
||||||
target.setMandateType(source.getMandateType());
|
target.setMandateType(source.getMandateType());
|
||||||
@@ -881,6 +883,7 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
|||||||
contract.setPaymentMethod(trim(contract.getPaymentMethod()));
|
contract.setPaymentMethod(trim(contract.getPaymentMethod()));
|
||||||
contract.setPrimaryContent(trim(contract.getPrimaryContent()));
|
contract.setPrimaryContent(trim(contract.getPrimaryContent()));
|
||||||
contract.setAmountExplain(trim(contract.getAmountExplain()));
|
contract.setAmountExplain(trim(contract.getAmountExplain()));
|
||||||
|
contract.setNeedAmendments(trim(contract.getNeedAmendments()));
|
||||||
contract.setAssistDepartmentName(trim(contract.getAssistDepartmentName()));
|
contract.setAssistDepartmentName(trim(contract.getAssistDepartmentName()));
|
||||||
contract.setExecutorAccount(trim(contract.getExecutorAccount()));
|
contract.setExecutorAccount(trim(contract.getExecutorAccount()));
|
||||||
contract.setPeriodExplain(trim(contract.getPeriodExplain()));
|
contract.setPeriodExplain(trim(contract.getPeriodExplain()));
|
||||||
@@ -891,6 +894,7 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
|||||||
contract.setDateType(trim(contract.getDateType()));
|
contract.setDateType(trim(contract.getDateType()));
|
||||||
contract.setPushUrl(trim(contract.getPushUrl()));
|
contract.setPushUrl(trim(contract.getPushUrl()));
|
||||||
contract.setEwAmountType(trim(contract.getEwAmountType()));
|
contract.setEwAmountType(trim(contract.getEwAmountType()));
|
||||||
|
contract.setBiddingNo(trim(contract.getBiddingNo()));
|
||||||
if (contract.getDateType() == null || contract.getDateType().isBlank()) {
|
if (contract.getDateType() == null || contract.getDateType().isBlank()) {
|
||||||
contract.setDateType("0");
|
contract.setDateType("0");
|
||||||
}
|
}
|
||||||
@@ -903,6 +907,9 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
|||||||
if (contract.getPaymentDirection() == null || contract.getPaymentDirection().isBlank()) {
|
if (contract.getPaymentDirection() == null || contract.getPaymentDirection().isBlank()) {
|
||||||
contract.setPaymentDirection("0");
|
contract.setPaymentDirection("0");
|
||||||
}
|
}
|
||||||
|
if (contract.getNeedAmendments() == null || contract.getNeedAmendments().isBlank()) {
|
||||||
|
contract.setNeedAmendments("0");
|
||||||
|
}
|
||||||
if (contract.getPushUrl() == null || contract.getPushUrl().isBlank()) {
|
if (contract.getPushUrl() == null || contract.getPushUrl().isBlank()) {
|
||||||
contract.setPushUrl("/contract/launch/callback/law/approve");
|
contract.setPushUrl("/contract/launch/callback/law/approve");
|
||||||
}
|
}
|
||||||
@@ -951,6 +958,9 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
|||||||
if (contract.getPartyList() == null || contract.getPartyList().isEmpty()) {
|
if (contract.getPartyList() == null || contract.getPartyList().isEmpty()) {
|
||||||
throw new ServiceException("至少需要维护一个合同方");
|
throw new ServiceException("至少需要维护一个合同方");
|
||||||
}
|
}
|
||||||
|
if ("2".equals(contract.getValuationMode()) && contract.getEstimatedAmount() == null) {
|
||||||
|
throw new ServiceException("预估总价合同必须填写预估金额");
|
||||||
|
}
|
||||||
boolean hasPartyA = contract.getPartyList().stream().anyMatch(item -> "A".equalsIgnoreCase(item.getRoleCode()));
|
boolean hasPartyA = contract.getPartyList().stream().anyMatch(item -> "A".equalsIgnoreCase(item.getRoleCode()));
|
||||||
boolean hasCounterparty = contract.getPartyList().stream().anyMatch(item -> !"A".equalsIgnoreCase(item.getRoleCode()));
|
boolean hasCounterparty = contract.getPartyList().stream().anyMatch(item -> !"A".equalsIgnoreCase(item.getRoleCode()));
|
||||||
if (!hasPartyA) {
|
if (!hasPartyA) {
|
||||||
@@ -959,6 +969,17 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
|||||||
if (!hasCounterparty) {
|
if (!hasCounterparty) {
|
||||||
throw new ServiceException("至少维护一个相对方");
|
throw new ServiceException("至少维护一个相对方");
|
||||||
}
|
}
|
||||||
|
if (Integer.valueOf(1).equals(contract.getIsOpenBidding())
|
||||||
|
&& (contract.getBiddingNo() == null || contract.getBiddingNo().isBlank())) {
|
||||||
|
throw new ServiceException("公开招标时必须填写关联招标号");
|
||||||
|
}
|
||||||
|
if (requiresAuthAttachment(contract.getSealType())
|
||||||
|
&& (contract.getFileList() == null || contract.getFileList().stream().noneMatch(item ->
|
||||||
|
ContractLaunchConstants.FILE_CATEGORY_AUTH.equals(item.getFileCategory())
|
||||||
|
&& item.getFilePath() != null
|
||||||
|
&& !item.getFilePath().isBlank()))) {
|
||||||
|
throw new ServiceException("当前签订方式必须上传授权委托书附件");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean canEdit(String status) {
|
private boolean canEdit(String status) {
|
||||||
@@ -1109,11 +1130,15 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
|||||||
payload.put("c_weNames", contract.getSigningSubjectCode() != null && !contract.getSigningSubjectCode().isBlank()
|
payload.put("c_weNames", contract.getSigningSubjectCode() != null && !contract.getSigningSubjectCode().isBlank()
|
||||||
? contract.getSigningSubjectCode()
|
? contract.getSigningSubjectCode()
|
||||||
: contract.getOrgId());
|
: contract.getOrgId());
|
||||||
// TODO: c_oppositeNames 应传集团返回的相对方ID,多个用逗号分隔,当前暂时传摘要占位
|
payload.put("c_oppositeNames", contract.getPartyList().stream()
|
||||||
payload.put("c_oppositeNames", contract.getCounterpartySummary());
|
.filter(item -> !"A".equalsIgnoreCase(item.getRoleCode()))
|
||||||
|
.map(item -> item.getOppositeId() != null && !item.getOppositeId().isBlank()
|
||||||
|
? item.getOppositeId()
|
||||||
|
: item.getPartnerId() == null ? null : String.valueOf(item.getPartnerId()))
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.collect(Collectors.joining(",")));
|
||||||
payload.put("c_textSource", contract.getTextSource());
|
payload.put("c_textSource", contract.getTextSource());
|
||||||
// c_needAmendments(是否需修订条款):DTO 暂无此字段,默认传 0(否)
|
payload.put("c_needAmendments", contract.getNeedAmendments());
|
||||||
payload.put("c_needAmendments", "0");
|
|
||||||
payload.put("c_mainContent", contract.getPrimaryContent());
|
payload.put("c_mainContent", contract.getPrimaryContent());
|
||||||
payload.put("c_direction", contract.getPaymentDirection());
|
payload.put("c_direction", contract.getPaymentDirection());
|
||||||
payload.put("c_method", contract.getValuationMode());
|
payload.put("c_method", contract.getValuationMode());
|
||||||
@@ -1124,8 +1149,7 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
|||||||
payload.put("c_subjectAMT", null);
|
payload.put("c_subjectAMT", null);
|
||||||
}
|
}
|
||||||
payload.put("c_currency", contract.getCurrencyName());
|
payload.put("c_currency", contract.getCurrencyName());
|
||||||
// TODO: c_estimatedAMT(预估金额)DTO 暂无此字段,计价方式=预估总价时需传
|
payload.put("c_estimatedAMT", "2".equals(contract.getValuationMode()) ? contract.getEstimatedAmount() : null);
|
||||||
payload.put("c_estimatedAMT", null);
|
|
||||||
payload.put("c_amountExplain", contract.getAmountExplain());
|
payload.put("c_amountExplain", contract.getAmountExplain());
|
||||||
// 额外金额
|
// 额外金额
|
||||||
payload.put("c_additional", contract.getEwAmountType());
|
payload.put("c_additional", contract.getEwAmountType());
|
||||||
@@ -1151,8 +1175,7 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
|||||||
payload.put("c_currentBudget", contract.getIsYearBudget());
|
payload.put("c_currentBudget", contract.getIsYearBudget());
|
||||||
payload.put("c_major", contract.getIsMajorContract());
|
payload.put("c_major", contract.getIsMajorContract());
|
||||||
payload.put("c_signMethod", contract.getSealType());
|
payload.put("c_signMethod", contract.getSealType());
|
||||||
// TODO: c_authAttachs(授权委托书附件)当前暂无此数据,传空数组
|
payload.put("c_authAttachs", buildCollectionFilePayloadList(contract, ContractLaunchConstants.FILE_CATEGORY_AUTH));
|
||||||
payload.put("c_authAttachs", Collections.emptyList());
|
|
||||||
payload.put("c_creator", contract.getInitiator());
|
payload.put("c_creator", contract.getInitiator());
|
||||||
payload.put("c_creatorPhone", contract.getCreatorPhone());
|
payload.put("c_creatorPhone", contract.getCreatorPhone());
|
||||||
payload.put("c_createDept", contract.getInitiatorDept());
|
payload.put("c_createDept", contract.getInitiatorDept());
|
||||||
@@ -1183,6 +1206,10 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
|||||||
return payload;
|
return payload;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean requiresAuthAttachment(String sealType) {
|
||||||
|
return "GZBSQRQZ".equals(sealType) || "HTZYZBSQRQZ".equals(sealType);
|
||||||
|
}
|
||||||
|
|
||||||
/** 构建归档报文(pushArchive 接口的 payload) */
|
/** 构建归档报文(pushArchive 接口的 payload) */
|
||||||
private Map<String, Object> buildArchivePayload(ContractLaunchDto contract, ContractLaunchArchiveDto archiveDto) {
|
private Map<String, Object> buildArchivePayload(ContractLaunchDto contract, ContractLaunchArchiveDto archiveDto) {
|
||||||
Map<String, Object> payload = new LinkedHashMap<>();
|
Map<String, Object> payload = new LinkedHashMap<>();
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ public final class ContractLaunchConstants {
|
|||||||
public static final String FILE_CATEGORY_BODY = "body";
|
public static final String FILE_CATEGORY_BODY = "body";
|
||||||
public static final String FILE_CATEGORY_OTHER = "other";
|
public static final String FILE_CATEGORY_OTHER = "other";
|
||||||
public static final String FILE_CATEGORY_GIST = "gist";
|
public static final String FILE_CATEGORY_GIST = "gist";
|
||||||
|
public static final String FILE_CATEGORY_AUTH = "auth";
|
||||||
public static final String FILE_CATEGORY_SIGNED = "signed";
|
public static final String FILE_CATEGORY_SIGNED = "signed";
|
||||||
public static final String FILE_CATEGORY_ARCHIVE = "archive";
|
public static final String FILE_CATEGORY_ARCHIVE = "archive";
|
||||||
|
|
||||||
|
|||||||
@@ -31,6 +31,8 @@
|
|||||||
<result property="primaryContent" column="PRIMARY_CONTENT"/>
|
<result property="primaryContent" column="PRIMARY_CONTENT"/>
|
||||||
<result property="amountExplain" column="AMOUNT_EXPLAIN"/>
|
<result property="amountExplain" column="AMOUNT_EXPLAIN"/>
|
||||||
<result property="valuationMode" column="VALUATION_MODE"/>
|
<result property="valuationMode" column="VALUATION_MODE"/>
|
||||||
|
<result property="needAmendments" column="NEED_AMENDMENTS"/>
|
||||||
|
<result property="estimatedAmount" column="ESTIMATED_AMOUNT"/>
|
||||||
<result property="sealType" column="SEAL_TYPE"/>
|
<result property="sealType" column="SEAL_TYPE"/>
|
||||||
<result property="textSource" column="TEXT_SOURCE"/>
|
<result property="textSource" column="TEXT_SOURCE"/>
|
||||||
<result property="mandateType" column="MANDATE_TYPE"/>
|
<result property="mandateType" column="MANDATE_TYPE"/>
|
||||||
@@ -248,7 +250,7 @@
|
|||||||
TEMPLATE_ID, TEMPLATE_CODE, TEMPLATE_NAME, STATUS, APPROVE_STATUS, APPROVE_MESSAGE,
|
TEMPLATE_ID, TEMPLATE_CODE, TEMPLATE_NAME, STATUS, APPROVE_STATUS, APPROVE_MESSAGE,
|
||||||
SEAL_CONTRACT_ID, SEAL_CONTRACT_STATUS, CONTRACT_AMOUNT, CURRENCY_NAME,
|
SEAL_CONTRACT_ID, SEAL_CONTRACT_STATUS, CONTRACT_AMOUNT, CURRENCY_NAME,
|
||||||
CONTRACT_PERIOD_TYPE, PERIOD_EXPLAIN, EFFECTIVE_START, EFFECTIVE_END,
|
CONTRACT_PERIOD_TYPE, PERIOD_EXPLAIN, EFFECTIVE_START, EFFECTIVE_END,
|
||||||
PAYMENT_METHOD, PRIMARY_CONTENT, AMOUNT_EXPLAIN, VALUATION_MODE, SEAL_TYPE,
|
PAYMENT_METHOD, PRIMARY_CONTENT, AMOUNT_EXPLAIN, VALUATION_MODE, NEED_AMENDMENTS, ESTIMATED_AMOUNT, SEAL_TYPE,
|
||||||
TEXT_SOURCE, MANDATE_TYPE, CARGO_TYPE, ASSIST_DEPARTMENT_NAME, EXECUTOR_ACCOUNT,
|
TEXT_SOURCE, MANDATE_TYPE, CARGO_TYPE, ASSIST_DEPARTMENT_NAME, EXECUTOR_ACCOUNT,
|
||||||
CREATOR_PHONE, SELF_CODE, MAIN_CONTRACT_CODE, SIGNING_SUBJECT_CODE, DATE_TYPE, IS_ADDIT, IS_ELECTRON,
|
CREATOR_PHONE, SELF_CODE, MAIN_CONTRACT_CODE, SIGNING_SUBJECT_CODE, DATE_TYPE, IS_ADDIT, IS_ELECTRON,
|
||||||
PAYMENT_DIRECTION, PUSH_URL, IS_MAJOR_CONTRACT, IS_OPEN_BIDDING, IS_YEAR_BUDGET, IS_SHARE,
|
PAYMENT_DIRECTION, PUSH_URL, IS_MAJOR_CONTRACT, IS_OPEN_BIDDING, IS_YEAR_BUDGET, IS_SHARE,
|
||||||
@@ -268,7 +270,7 @@
|
|||||||
#{templateId}, #{templateCode}, #{templateName}, #{status}, #{approveStatus}, #{approveMessage},
|
#{templateId}, #{templateCode}, #{templateName}, #{status}, #{approveStatus}, #{approveMessage},
|
||||||
#{sealContractId}, #{sealContractStatus}, #{contractAmount}, #{currencyName},
|
#{sealContractId}, #{sealContractStatus}, #{contractAmount}, #{currencyName},
|
||||||
#{contractPeriodType}, #{periodExplain}, #{effectiveStart}, #{effectiveEnd},
|
#{contractPeriodType}, #{periodExplain}, #{effectiveStart}, #{effectiveEnd},
|
||||||
#{paymentMethod}, #{primaryContent}, #{amountExplain}, #{valuationMode}, #{sealType},
|
#{paymentMethod}, #{primaryContent}, #{amountExplain}, #{valuationMode}, #{needAmendments}, #{estimatedAmount}, #{sealType},
|
||||||
#{textSource}, #{mandateType}, #{cargoType}, #{assistDepartmentName}, #{executorAccount},
|
#{textSource}, #{mandateType}, #{cargoType}, #{assistDepartmentName}, #{executorAccount},
|
||||||
#{creatorPhone}, #{selfCode}, #{mainContractCode}, #{signingSubjectCode}, #{dateType}, #{isAddit}, #{isElectron},
|
#{creatorPhone}, #{selfCode}, #{mainContractCode}, #{signingSubjectCode}, #{dateType}, #{isAddit}, #{isElectron},
|
||||||
#{paymentDirection}, #{pushUrl}, #{isMajorContract}, #{isOpenBidding}, #{isYearBudget}, #{isShare},
|
#{paymentDirection}, #{pushUrl}, #{isMajorContract}, #{isOpenBidding}, #{isYearBudget}, #{isShare},
|
||||||
@@ -313,6 +315,8 @@
|
|||||||
PRIMARY_CONTENT = #{primaryContent},
|
PRIMARY_CONTENT = #{primaryContent},
|
||||||
AMOUNT_EXPLAIN = #{amountExplain},
|
AMOUNT_EXPLAIN = #{amountExplain},
|
||||||
VALUATION_MODE = #{valuationMode},
|
VALUATION_MODE = #{valuationMode},
|
||||||
|
NEED_AMENDMENTS = #{needAmendments},
|
||||||
|
ESTIMATED_AMOUNT = #{estimatedAmount},
|
||||||
SEAL_TYPE = #{sealType},
|
SEAL_TYPE = #{sealType},
|
||||||
TEXT_SOURCE = #{textSource},
|
TEXT_SOURCE = #{textSource},
|
||||||
MANDATE_TYPE = #{mandateType},
|
MANDATE_TYPE = #{mandateType},
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
DECLARE
|
||||||
|
v_count NUMBER;
|
||||||
|
BEGIN
|
||||||
|
SELECT COUNT(1)
|
||||||
|
INTO v_count
|
||||||
|
FROM USER_TAB_COLUMNS
|
||||||
|
WHERE TABLE_NAME = 'SEAL_CONTRACT_LAUNCH_MAIN'
|
||||||
|
AND COLUMN_NAME = 'NEED_AMENDMENTS';
|
||||||
|
IF v_count = 0 THEN
|
||||||
|
EXECUTE IMMEDIATE 'ALTER TABLE SEAL_CONTRACT_LAUNCH_MAIN ADD NEED_AMENDMENTS VARCHAR2(4 CHAR) DEFAULT ''0''';
|
||||||
|
EXECUTE IMMEDIATE 'COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.NEED_AMENDMENTS IS ''是否需修订条款:1是 0否''';
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
SELECT COUNT(1)
|
||||||
|
INTO v_count
|
||||||
|
FROM USER_TAB_COLUMNS
|
||||||
|
WHERE TABLE_NAME = 'SEAL_CONTRACT_LAUNCH_MAIN'
|
||||||
|
AND COLUMN_NAME = 'ESTIMATED_AMOUNT';
|
||||||
|
IF v_count = 0 THEN
|
||||||
|
EXECUTE IMMEDIATE 'ALTER TABLE SEAL_CONTRACT_LAUNCH_MAIN ADD ESTIMATED_AMOUNT NUMBER(20, 2)';
|
||||||
|
EXECUTE IMMEDIATE 'COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.ESTIMATED_AMOUNT IS ''预估金额''';
|
||||||
|
END IF;
|
||||||
|
END;
|
||||||
|
/
|
||||||
@@ -115,6 +115,8 @@ CREATE TABLE SEAL_CONTRACT_LAUNCH_MAIN (
|
|||||||
PRIMARY_CONTENT VARCHAR2(2000 CHAR),
|
PRIMARY_CONTENT VARCHAR2(2000 CHAR),
|
||||||
AMOUNT_EXPLAIN VARCHAR2(2000 CHAR),
|
AMOUNT_EXPLAIN VARCHAR2(2000 CHAR),
|
||||||
VALUATION_MODE VARCHAR2(10 CHAR),
|
VALUATION_MODE VARCHAR2(10 CHAR),
|
||||||
|
NEED_AMENDMENTS VARCHAR2(4 CHAR) DEFAULT '0',
|
||||||
|
ESTIMATED_AMOUNT NUMBER(20, 2),
|
||||||
SEAL_TYPE VARCHAR2(50 CHAR),
|
SEAL_TYPE VARCHAR2(50 CHAR),
|
||||||
TEXT_SOURCE VARCHAR2(50 CHAR),
|
TEXT_SOURCE VARCHAR2(50 CHAR),
|
||||||
MANDATE_TYPE VARCHAR2(50 CHAR),
|
MANDATE_TYPE VARCHAR2(50 CHAR),
|
||||||
@@ -299,6 +301,8 @@ COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.PAYMENT_METHOD IS '付款方式';
|
|||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.PRIMARY_CONTENT IS '合同主要内容';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.PRIMARY_CONTENT IS '合同主要内容';
|
||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.AMOUNT_EXPLAIN IS '金额说明';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.AMOUNT_EXPLAIN IS '金额说明';
|
||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.VALUATION_MODE IS '计价方式';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.VALUATION_MODE IS '计价方式';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.NEED_AMENDMENTS IS '是否需修订条款:1是 0否';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.ESTIMATED_AMOUNT IS '预估金额';
|
||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.SEAL_TYPE IS '签订方式';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.SEAL_TYPE IS '签订方式';
|
||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.TEXT_SOURCE IS '文本来源';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.TEXT_SOURCE IS '文本来源';
|
||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.MANDATE_TYPE IS '委托类型';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.MANDATE_TYPE IS '委托类型';
|
||||||
|
|||||||
Reference in New Issue
Block a user