用印时间
This commit is contained in:
@@ -287,6 +287,10 @@ public class ContractLaunchDto implements Serializable {
|
|||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
private LocalDateTime signDate;
|
private LocalDateTime signDate;
|
||||||
|
|
||||||
|
/** 用印时间 */
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
|
private LocalDateTime sealDate;
|
||||||
|
|
||||||
/** 用印数量,默认为1 */
|
/** 用印数量,默认为1 */
|
||||||
private Integer sealQuantity;
|
private Integer sealQuantity;
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
package com.nbport.zgwl.contractlaunch.dto;
|
package com.nbport.zgwl.contractlaunch.dto;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 签章回写参数
|
* 签章回写参数
|
||||||
@@ -40,4 +42,16 @@ public class ContractLaunchSealDto implements Serializable {
|
|||||||
private String signedFileUrl;
|
private String signedFileUrl;
|
||||||
|
|
||||||
private String signedOfflineReason;
|
private String signedOfflineReason;
|
||||||
|
|
||||||
|
/** 签订日期 */
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
|
private LocalDateTime signDate;
|
||||||
|
|
||||||
|
/** 用印时间 */
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
|
private LocalDateTime sealDate;
|
||||||
|
|
||||||
|
/** 合同生效日期 */
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
|
private LocalDateTime activeDate;
|
||||||
}
|
}
|
||||||
|
|||||||
+106
-3
@@ -396,6 +396,7 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
|||||||
public ContractLaunchDto markSealCompleted(Long id, ContractLaunchSealDto sealDto) {
|
public ContractLaunchDto markSealCompleted(Long id, ContractLaunchSealDto sealDto) {
|
||||||
ContractLaunchDto contract = getDetail(id);
|
ContractLaunchDto contract = getDetail(id);
|
||||||
SysUserEntity currentUser = adminSecurityManage.getUser();
|
SysUserEntity currentUser = adminSecurityManage.getUser();
|
||||||
|
LocalDateTime completedTime = LocalDateTime.now();
|
||||||
contract.setSealContractId(sealDto.getSealContractId() == null || sealDto.getSealContractId().isBlank() ? contract.getSealContractId() : sealDto.getSealContractId());
|
contract.setSealContractId(sealDto.getSealContractId() == null || sealDto.getSealContractId().isBlank() ? contract.getSealContractId() : sealDto.getSealContractId());
|
||||||
contract.setSealContractStatus(sealDto.getSealContractStatus());
|
contract.setSealContractStatus(sealDto.getSealContractStatus());
|
||||||
contract.setSignedFileName(sealDto.getSignedFileName());
|
contract.setSignedFileName(sealDto.getSignedFileName());
|
||||||
@@ -406,9 +407,13 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
|||||||
contract.setSignedFileType(sealDto.getSignedFileType());
|
contract.setSignedFileType(sealDto.getSignedFileType());
|
||||||
contract.setSignedFileSize(sealDto.getSignedFileSize());
|
contract.setSignedFileSize(sealDto.getSignedFileSize());
|
||||||
contract.setSignedOfflineReason(sealDto.getSignedOfflineReason());
|
contract.setSignedOfflineReason(sealDto.getSignedOfflineReason());
|
||||||
|
contract.setSignDate(firstNonNull(sealDto.getSignDate(), contract.getSignDate(), completedTime));
|
||||||
|
contract.setSealDate(firstNonNull(sealDto.getSealDate(), contract.getSealDate(), contract.getSignDate()));
|
||||||
|
contract.setActiveDate(firstNonNull(sealDto.getActiveDate(), contract.getActiveDate()));
|
||||||
|
validateSignCompletion(contract);
|
||||||
contract.setStatus(ContractLaunchConstants.STATUS_PENDING_COLLECT);
|
contract.setStatus(ContractLaunchConstants.STATUS_PENDING_COLLECT);
|
||||||
contract.setUpdateBy(currentUser.getUsername());
|
contract.setUpdateBy(currentUser.getUsername());
|
||||||
contract.setUpdateTime(LocalDateTime.now());
|
contract.setUpdateTime(completedTime);
|
||||||
contractLaunchMapper.updateContract(contract);
|
contractLaunchMapper.updateContract(contract);
|
||||||
saveSignedFile(id, sealDto, currentUser.getUsername());
|
saveSignedFile(id, sealDto, currentUser.getUsername());
|
||||||
insertLog(id, ContractLaunchConstants.ACTION_SEAL_FINISH, "签署完成", ContractLaunchConstants.ACTION_STATUS_SUCCESS, "合同签署已完成,待采集", sealDto, currentUser);
|
insertLog(id, ContractLaunchConstants.ACTION_SEAL_FINISH, "签署完成", ContractLaunchConstants.ACTION_STATUS_SUCCESS, "合同签署已完成,待采集", sealDto, currentUser);
|
||||||
@@ -441,6 +446,7 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
|||||||
if (!ContractLaunchConstants.STATUS_PENDING_COLLECT.equals(contract.getStatus())) {
|
if (!ContractLaunchConstants.STATUS_PENDING_COLLECT.equals(contract.getStatus())) {
|
||||||
throw new ServiceException("当前状态不允许执行采集");
|
throw new ServiceException("当前状态不允许执行采集");
|
||||||
}
|
}
|
||||||
|
validateCollectionReady(contract);
|
||||||
SysUserEntity currentUser = adminSecurityManage.getUser();
|
SysUserEntity currentUser = adminSecurityManage.getUser();
|
||||||
Map<String, Object> payload = buildDataCollectionContractPayload(contract);
|
Map<String, Object> payload = buildDataCollectionContractPayload(contract);
|
||||||
insertLog(id, ContractLaunchConstants.ACTION_COLLECT, "模拟合同采集", ContractLaunchConstants.ACTION_STATUS_PENDING, "合同采集接口当前先注释,使用测试按钮流转", payload, currentUser);
|
insertLog(id, ContractLaunchConstants.ACTION_COLLECT, "模拟合同采集", ContractLaunchConstants.ACTION_STATUS_PENDING, "合同采集接口当前先注释,使用测试按钮流转", payload, currentUser);
|
||||||
@@ -654,6 +660,7 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
|||||||
target.setContractTextFileType(source.getContractTextFileType());
|
target.setContractTextFileType(source.getContractTextFileType());
|
||||||
target.setContractTextFileSize(source.getContractTextFileSize());
|
target.setContractTextFileSize(source.getContractTextFileSize());
|
||||||
target.setSignDate(source.getSignDate());
|
target.setSignDate(source.getSignDate());
|
||||||
|
target.setSealDate(source.getSealDate());
|
||||||
target.setActiveDate(source.getActiveDate());
|
target.setActiveDate(source.getActiveDate());
|
||||||
target.setInvoiceDate(source.getInvoiceDate());
|
target.setInvoiceDate(source.getInvoiceDate());
|
||||||
target.setReceiveDate(source.getReceiveDate());
|
target.setReceiveDate(source.getReceiveDate());
|
||||||
@@ -975,6 +982,10 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
|||||||
&& (contract.getPeriodExplain() == null || contract.getPeriodExplain().isBlank())) {
|
&& (contract.getPeriodExplain() == null || contract.getPeriodExplain().isBlank())) {
|
||||||
throw new ServiceException("无固定期限合同必须填写期限说明");
|
throw new ServiceException("无固定期限合同必须填写期限说明");
|
||||||
}
|
}
|
||||||
|
if (contract.getActiveDate() == null) {
|
||||||
|
throw new ServiceException("合同生效日期不能为空");
|
||||||
|
}
|
||||||
|
validateActiveDateWithinTerm(contract);
|
||||||
if (contract.getPartyList() == null || contract.getPartyList().isEmpty()) {
|
if (contract.getPartyList() == null || contract.getPartyList().isEmpty()) {
|
||||||
throw new ServiceException("至少需要维护一个合同方");
|
throw new ServiceException("至少需要维护一个合同方");
|
||||||
}
|
}
|
||||||
@@ -1000,6 +1011,7 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
|||||||
&& !item.getFilePath().isBlank()))) {
|
&& !item.getFilePath().isBlank()))) {
|
||||||
throw new ServiceException("当前签订方式必须上传授权委托书附件");
|
throw new ServiceException("当前签订方式必须上传授权委托书附件");
|
||||||
}
|
}
|
||||||
|
validatePerformancePlans(contract, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean canEdit(String status) {
|
private boolean canEdit(String status) {
|
||||||
@@ -1208,14 +1220,14 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
|||||||
// payload.put("c_zw", buildCollectionFilePayloadList(contract, ContractLaunchConstants.FILE_CATEGORY_BODY));
|
// payload.put("c_zw", buildCollectionFilePayloadList(contract, ContractLaunchConstants.FILE_CATEGORY_BODY));
|
||||||
// payload.put("c_attachs", buildCollectionFilePayloadList(contract, ContractLaunchConstants.FILE_CATEGORY_OTHER));
|
// payload.put("c_attachs", buildCollectionFilePayloadList(contract, ContractLaunchConstants.FILE_CATEGORY_OTHER));
|
||||||
// payload.put("c_signAttachs", buildCollectionFilePayloadList(contract, ContractLaunchConstants.FILE_CATEGORY_GIST));
|
// payload.put("c_signAttachs", buildCollectionFilePayloadList(contract, ContractLaunchConstants.FILE_CATEGORY_GIST));
|
||||||
payload.put("c_lxPlan", contract.getPerformancePlans());
|
payload.put("c_lxPlan", buildCollectionPlanPayloadList(contract));
|
||||||
// 用印信息
|
// 用印信息
|
||||||
Map<String, Object> seal = new LinkedHashMap<>();
|
Map<String, Object> seal = new LinkedHashMap<>();
|
||||||
seal.put("seal_isSeal", "1");
|
seal.put("seal_isSeal", "1");
|
||||||
seal.put("seal_approveSame", "1");
|
seal.put("seal_approveSame", "1");
|
||||||
seal.put("seal_type", contract.getSealType());
|
seal.put("seal_type", contract.getSealType());
|
||||||
seal.put("seal_quantity", contract.getSealQuantity() == null ? "1" : String.valueOf(contract.getSealQuantity()));
|
seal.put("seal_quantity", contract.getSealQuantity() == null ? "1" : String.valueOf(contract.getSealQuantity()));
|
||||||
seal.put("seal_date", contract.getSignDate());
|
seal.put("seal_date", contract.getSealDate());
|
||||||
payload.put("c_seal", seal);
|
payload.put("c_seal", seal);
|
||||||
// 签订信息
|
// 签订信息
|
||||||
Map<String, Object> sign = new LinkedHashMap<>();
|
Map<String, Object> sign = new LinkedHashMap<>();
|
||||||
@@ -1230,6 +1242,23 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
|||||||
return payload;
|
return payload;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<Map<String, Object>> buildCollectionPlanPayloadList(ContractLaunchDto contract) {
|
||||||
|
boolean amountRequired = isPlanAmountRequired(contract.getValuationMode());
|
||||||
|
return contract.getPerformancePlans().stream().map(plan -> {
|
||||||
|
Map<String, Object> map = new LinkedHashMap<>();
|
||||||
|
map.put("lx_id", plan.getId() == null ? null : String.valueOf(plan.getId()));
|
||||||
|
map.put("lx_item", plan.getPlanMatter());
|
||||||
|
map.put("lx_condition", plan.getPlanWhere());
|
||||||
|
map.put("lx_nodeDate", plan.getPlanTime());
|
||||||
|
map.put("lx_remindDays", plan.getPlanDay() == null ? null : String.valueOf(plan.getPlanDay()));
|
||||||
|
if (amountRequired && plan.getPlanMoney() != null) {
|
||||||
|
map.put("lx_amount", plan.getPlanMoney());
|
||||||
|
}
|
||||||
|
map.put("lx_remarks", plan.getPlanDetail());
|
||||||
|
return map;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
private boolean requiresAuthAttachment(String sealType) {
|
private boolean requiresAuthAttachment(String sealType) {
|
||||||
return "GZBSQRQZ".equals(sealType) || "HTZYZBSQRQZ".equals(sealType);
|
return "GZBSQRQZ".equals(sealType) || "HTZYZBSQRQZ".equals(sealType);
|
||||||
}
|
}
|
||||||
@@ -1339,6 +1368,80 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
|||||||
return path != null && (path.startsWith("http://") || path.startsWith("https://"));
|
return path != null && (path.startsWith("http://") || path.startsWith("https://"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void validateSignCompletion(ContractLaunchDto contract) {
|
||||||
|
if (contract.getSignDate() == null) {
|
||||||
|
throw new ServiceException("签订日期不能为空");
|
||||||
|
}
|
||||||
|
if (contract.getSealDate() == null) {
|
||||||
|
throw new ServiceException("用印时间不能为空");
|
||||||
|
}
|
||||||
|
if (contract.getActiveDate() == null) {
|
||||||
|
throw new ServiceException("合同生效日期不能为空");
|
||||||
|
}
|
||||||
|
validateActiveDateWithinTerm(contract);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateCollectionReady(ContractLaunchDto contract) {
|
||||||
|
validateSignCompletion(contract);
|
||||||
|
validatePerformancePlans(contract, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validatePerformancePlans(ContractLaunchDto contract, boolean requirePlanId) {
|
||||||
|
if (contract.getPerformancePlans() == null || contract.getPerformancePlans().isEmpty()) {
|
||||||
|
throw new ServiceException("履行计划不能为空");
|
||||||
|
}
|
||||||
|
boolean amountRequired = isPlanAmountRequired(contract.getValuationMode());
|
||||||
|
for (ContractLaunchPlanDto plan : contract.getPerformancePlans()) {
|
||||||
|
if (requirePlanId && plan.getId() == null) {
|
||||||
|
throw new ServiceException("履行计划ID不能为空");
|
||||||
|
}
|
||||||
|
if (plan.getPlanMatter() == null || plan.getPlanMatter().isBlank()) {
|
||||||
|
throw new ServiceException("履行计划的履行事项不能为空");
|
||||||
|
}
|
||||||
|
if (plan.getPlanWhere() == null || plan.getPlanWhere().isBlank()) {
|
||||||
|
throw new ServiceException("履行计划的履约条件不能为空");
|
||||||
|
}
|
||||||
|
if (plan.getPlanTime() == null) {
|
||||||
|
throw new ServiceException("履行计划的节点日期不能为空");
|
||||||
|
}
|
||||||
|
if (plan.getPlanDay() == null) {
|
||||||
|
throw new ServiceException("履行计划的提前提醒天数不能为空");
|
||||||
|
}
|
||||||
|
if (amountRequired && plan.getPlanMoney() == null) {
|
||||||
|
throw new ServiceException("履行计划的款项金额不能为空");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isPlanAmountRequired(String valuationMode) {
|
||||||
|
return !"0".equals(valuationMode) && !"3".equals(valuationMode);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateActiveDateWithinTerm(ContractLaunchDto contract) {
|
||||||
|
if (contract.getActiveDate() == null || !"0".equals(contract.getContractPeriodType())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (contract.getEffectiveStart() != null && contract.getActiveDate().isBefore(contract.getEffectiveStart())) {
|
||||||
|
throw new ServiceException("合同生效日期不能早于合同开始日期");
|
||||||
|
}
|
||||||
|
if (contract.getEffectiveEnd() != null && contract.getActiveDate().isAfter(contract.getEffectiveEnd())) {
|
||||||
|
throw new ServiceException("合同生效日期不能晚于合同结束日期");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SafeVarargs
|
||||||
|
private final <T> T firstNonNull(T... values) {
|
||||||
|
if (values == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
for (T value : values) {
|
||||||
|
if (value != null) {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
private String trim(String value) {
|
private String trim(String value) {
|
||||||
return value == null ? null : value.trim();
|
return value == null ? null : value.trim();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -79,6 +79,7 @@
|
|||||||
<result property="signedFileUrl" column="SIGNED_FILE_URL"/>
|
<result property="signedFileUrl" column="SIGNED_FILE_URL"/>
|
||||||
<result property="signedOfflineReason" column="SIGNED_OFFLINE_REASON"/>
|
<result property="signedOfflineReason" column="SIGNED_OFFLINE_REASON"/>
|
||||||
<result property="signDate" column="SIGN_DATE"/>
|
<result property="signDate" column="SIGN_DATE"/>
|
||||||
|
<result property="sealDate" column="SEAL_DATE"/>
|
||||||
<result property="activeDate" column="ACTIVE_DATE"/>
|
<result property="activeDate" column="ACTIVE_DATE"/>
|
||||||
<result property="archiveDate" column="ARCHIVE_DATE"/>
|
<result property="archiveDate" column="ARCHIVE_DATE"/>
|
||||||
<result property="archiveKeeper" column="ARCHIVE_KEEPER"/>
|
<result property="archiveKeeper" column="ARCHIVE_KEEPER"/>
|
||||||
@@ -184,7 +185,7 @@
|
|||||||
EW_AMOUNT_TYPE, DJ_AMOUNT, YJ_AMOUNT, YFK_AMOUNT, BZJ_AMOUNT, BODY_SUMMARY,
|
EW_AMOUNT_TYPE, DJ_AMOUNT, YJ_AMOUNT, YFK_AMOUNT, BZJ_AMOUNT, BODY_SUMMARY,
|
||||||
CONTRACT_TEXT_FILE_NAME, CONTRACT_TEXT_FILE_PATH, CONTRACT_TEXT_FILE_TYPE, CONTRACT_TEXT_FILE_SIZE,
|
CONTRACT_TEXT_FILE_NAME, CONTRACT_TEXT_FILE_PATH, CONTRACT_TEXT_FILE_TYPE, CONTRACT_TEXT_FILE_SIZE,
|
||||||
SIGNED_FILE_NAME, SIGNED_FILE_PATH, SIGNED_FILE_TYPE, SIGNED_FILE_SIZE, SIGNED_FILE_URL, SIGNED_OFFLINE_REASON,
|
SIGNED_FILE_NAME, SIGNED_FILE_PATH, SIGNED_FILE_TYPE, SIGNED_FILE_SIZE, SIGNED_FILE_URL, SIGNED_OFFLINE_REASON,
|
||||||
SIGN_DATE, ACTIVE_DATE, ARCHIVE_DATE, ARCHIVE_KEEPER, ARCHIVE_KEEPER_UNIT,
|
SIGN_DATE, SEAL_DATE, ACTIVE_DATE, ARCHIVE_DATE, ARCHIVE_KEEPER, ARCHIVE_KEEPER_UNIT,
|
||||||
ARCHIVE_KEEPER_UNIT_CODE, INVOICE_DATE, RECEIVE_DATE, REMIND_DAYS,
|
ARCHIVE_KEEPER_UNIT_CODE, INVOICE_DATE, RECEIVE_DATE, REMIND_DAYS,
|
||||||
INITIATOR, INITIATOR_DEPT, COMPANY_NAME, ORG_ID, QUERY_SCOPE,
|
INITIATOR, INITIATOR_DEPT, COMPANY_NAME, ORG_ID, QUERY_SCOPE,
|
||||||
CREATE_BY, CREATE_TIME, UPDATE_BY, UPDATE_TIME, IS_DELETED, REMARK
|
CREATE_BY, CREATE_TIME, UPDATE_BY, UPDATE_TIME, IS_DELETED, REMARK
|
||||||
@@ -262,7 +263,7 @@
|
|||||||
TEMPLATE_FIELD_VALUES_JSON,
|
TEMPLATE_FIELD_VALUES_JSON,
|
||||||
CONTRACT_TEXT_FILE_NAME, CONTRACT_TEXT_FILE_PATH, CONTRACT_TEXT_FILE_TYPE, CONTRACT_TEXT_FILE_SIZE,
|
CONTRACT_TEXT_FILE_NAME, CONTRACT_TEXT_FILE_PATH, CONTRACT_TEXT_FILE_TYPE, CONTRACT_TEXT_FILE_SIZE,
|
||||||
SIGNED_FILE_NAME, SIGNED_FILE_PATH, SIGNED_FILE_TYPE, SIGNED_FILE_SIZE, SIGNED_FILE_URL, SIGNED_OFFLINE_REASON,
|
SIGNED_FILE_NAME, SIGNED_FILE_PATH, SIGNED_FILE_TYPE, SIGNED_FILE_SIZE, SIGNED_FILE_URL, SIGNED_OFFLINE_REASON,
|
||||||
SIGN_DATE, ACTIVE_DATE, ARCHIVE_DATE, ARCHIVE_KEEPER, ARCHIVE_KEEPER_UNIT,
|
SIGN_DATE, SEAL_DATE, ACTIVE_DATE, ARCHIVE_DATE, ARCHIVE_KEEPER, ARCHIVE_KEEPER_UNIT,
|
||||||
ARCHIVE_KEEPER_UNIT_CODE, INVOICE_DATE, RECEIVE_DATE, REMIND_DAYS,
|
ARCHIVE_KEEPER_UNIT_CODE, INVOICE_DATE, RECEIVE_DATE, REMIND_DAYS,
|
||||||
INITIATOR, INITIATOR_DEPT, COMPANY_NAME, ORG_ID, QUERY_SCOPE,
|
INITIATOR, INITIATOR_DEPT, COMPANY_NAME, ORG_ID, QUERY_SCOPE,
|
||||||
CREATE_BY, CREATE_TIME, UPDATE_BY, UPDATE_TIME, IS_DELETED, REMARK
|
CREATE_BY, CREATE_TIME, UPDATE_BY, UPDATE_TIME, IS_DELETED, REMARK
|
||||||
@@ -282,7 +283,7 @@
|
|||||||
#{templateFieldValuesJson},
|
#{templateFieldValuesJson},
|
||||||
#{contractTextFileName}, #{contractTextFilePath}, #{contractTextFileType}, #{contractTextFileSize},
|
#{contractTextFileName}, #{contractTextFilePath}, #{contractTextFileType}, #{contractTextFileSize},
|
||||||
#{signedFileName}, #{signedFilePath}, #{signedFileType}, #{signedFileSize}, #{signedFileUrl}, #{signedOfflineReason},
|
#{signedFileName}, #{signedFilePath}, #{signedFileType}, #{signedFileSize}, #{signedFileUrl}, #{signedOfflineReason},
|
||||||
#{signDate}, #{activeDate}, #{archiveDate}, #{archiveKeeper}, #{archiveKeeperUnit},
|
#{signDate}, #{sealDate}, #{activeDate}, #{archiveDate}, #{archiveKeeper}, #{archiveKeeperUnit},
|
||||||
#{archiveKeeperUnitCode}, #{invoiceDate}, #{receiveDate}, #{remindDays},
|
#{archiveKeeperUnitCode}, #{invoiceDate}, #{receiveDate}, #{remindDays},
|
||||||
#{initiator}, #{initiatorDept}, #{companyName}, #{orgId}, #{queryScope},
|
#{initiator}, #{initiatorDept}, #{companyName}, #{orgId}, #{queryScope},
|
||||||
#{createBy}, #{createTime}, #{updateBy}, #{updateTime}, #{isDeleted}, #{remark}
|
#{createBy}, #{createTime}, #{updateBy}, #{updateTime}, #{isDeleted}, #{remark}
|
||||||
@@ -365,6 +366,7 @@
|
|||||||
SIGNED_FILE_URL = #{signedFileUrl},
|
SIGNED_FILE_URL = #{signedFileUrl},
|
||||||
SIGNED_OFFLINE_REASON = #{signedOfflineReason},
|
SIGNED_OFFLINE_REASON = #{signedOfflineReason},
|
||||||
SIGN_DATE = #{signDate},
|
SIGN_DATE = #{signDate},
|
||||||
|
SEAL_DATE = #{sealDate},
|
||||||
ACTIVE_DATE = #{activeDate},
|
ACTIVE_DATE = #{activeDate},
|
||||||
ARCHIVE_DATE = #{archiveDate},
|
ARCHIVE_DATE = #{archiveDate},
|
||||||
ARCHIVE_KEEPER = #{archiveKeeper},
|
ARCHIVE_KEEPER = #{archiveKeeper},
|
||||||
|
|||||||
@@ -161,6 +161,7 @@ CREATE TABLE SEAL_CONTRACT_LAUNCH_MAIN (
|
|||||||
SIGNED_FILE_SIZE NUMBER(19),
|
SIGNED_FILE_SIZE NUMBER(19),
|
||||||
SIGNED_OFFLINE_REASON VARCHAR2(1000 CHAR),
|
SIGNED_OFFLINE_REASON VARCHAR2(1000 CHAR),
|
||||||
SIGN_DATE DATE,
|
SIGN_DATE DATE,
|
||||||
|
SEAL_DATE DATE,
|
||||||
ACTIVE_DATE DATE,
|
ACTIVE_DATE DATE,
|
||||||
ARCHIVE_DATE DATE,
|
ARCHIVE_DATE DATE,
|
||||||
ARCHIVE_KEEPER VARCHAR2(64 CHAR),
|
ARCHIVE_KEEPER VARCHAR2(64 CHAR),
|
||||||
@@ -348,6 +349,7 @@ COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.SIGNED_FILE_TYPE IS '已签署文件
|
|||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.SIGNED_FILE_SIZE IS '已签署文件大小';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.SIGNED_FILE_SIZE IS '已签署文件大小';
|
||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.SIGNED_OFFLINE_REASON IS '线下签署原因';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.SIGNED_OFFLINE_REASON IS '线下签署原因';
|
||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.SIGN_DATE IS '签署日期';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.SIGN_DATE IS '签署日期';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.SEAL_DATE IS '用印时间';
|
||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.ACTIVE_DATE IS '合同生效日期';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.ACTIVE_DATE IS '合同生效日期';
|
||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.ARCHIVE_DATE IS '归档时间';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.ARCHIVE_DATE IS '归档时间';
|
||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.ARCHIVE_KEEPER IS '档案保管人';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.ARCHIVE_KEEPER IS '档案保管人';
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
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 = 'SEAL_DATE';
|
||||||
|
IF v_count = 0 THEN
|
||||||
|
EXECUTE IMMEDIATE 'ALTER TABLE SEAL_CONTRACT_LAUNCH_MAIN ADD SEAL_DATE DATE';
|
||||||
|
EXECUTE IMMEDIATE 'COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.SEAL_DATE IS ''用印时间''';
|
||||||
|
END IF;
|
||||||
|
END;
|
||||||
|
/
|
||||||
Reference in New Issue
Block a user