功能修改
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
-- =============================================
|
||||
-- Partner module time-column update for Oracle
|
||||
-- Execute with:
|
||||
-- sqlplus developer/dev123@localhost/XEPDB1 @partner_alter_date_oracle.sql
|
||||
-- =============================================
|
||||
|
||||
WHENEVER SQLERROR EXIT SQL.SQLCODE;
|
||||
|
||||
PROMPT Alter ILDM_FEE_CUSTOMER_INFO.CREATE_TIME / UPDATE_TIME to DATE...
|
||||
ALTER TABLE ILDM_FEE_CUSTOMER_INFO MODIFY (
|
||||
CREATE_TIME DATE,
|
||||
UPDATE_TIME DATE
|
||||
);
|
||||
|
||||
PROMPT Alter SEAL_PARTNER_CONTACT.CREATE_TIME / UPDATE_TIME to DATE...
|
||||
ALTER TABLE SEAL_PARTNER_CONTACT MODIFY (
|
||||
CREATE_TIME DATE,
|
||||
UPDATE_TIME DATE
|
||||
);
|
||||
|
||||
PROMPT Verify column types...
|
||||
SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, DATA_LENGTH
|
||||
FROM USER_TAB_COLUMNS
|
||||
WHERE TABLE_NAME IN ('ILDM_FEE_CUSTOMER_INFO', 'SEAL_PARTNER_CONTACT')
|
||||
AND COLUMN_NAME IN ('CREATE_TIME', 'UPDATE_TIME')
|
||||
ORDER BY TABLE_NAME, COLUMN_NAME;
|
||||
@@ -1,36 +1,79 @@
|
||||
package com.nbport.zgwl.common;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fasterxml.jackson.annotation.JsonView;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 分页查询返回结果包装类
|
||||
*
|
||||
* @author mac
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
public class PageResult<T> implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Long pageNo;
|
||||
/**
|
||||
* 当前第几页
|
||||
*/
|
||||
@JsonView(Views.Public.class)
|
||||
private long pageNo;
|
||||
|
||||
private Long pageSize;
|
||||
/**
|
||||
* 当前页条数
|
||||
*/
|
||||
@JsonView(Views.Public.class)
|
||||
private long pageSize;
|
||||
|
||||
private Long total;
|
||||
/**
|
||||
* 总条数
|
||||
*/
|
||||
@JsonView(Views.Public.class)
|
||||
private long totalSize;
|
||||
|
||||
private Long totalPage;
|
||||
/**
|
||||
* 当前总共有几页
|
||||
*/
|
||||
@JsonView(Views.Public.class)
|
||||
private long totalPage;
|
||||
|
||||
private List<T> records = new ArrayList<>();
|
||||
/**
|
||||
* 分页数据
|
||||
*/
|
||||
@JsonView(Views.Public.class)
|
||||
private List<T> data;
|
||||
|
||||
public PageResult(IPage<T> page) {
|
||||
public PageResult() {
|
||||
}
|
||||
|
||||
public PageResult(Page<T> page) {
|
||||
this.pageNo = page.getCurrent();
|
||||
this.pageSize = page.getSize();
|
||||
this.total = page.getTotal();
|
||||
this.totalSize = page.getTotal();
|
||||
this.totalPage = page.getPages();
|
||||
this.records = page.getRecords();
|
||||
this.data = page.getRecords();
|
||||
}
|
||||
|
||||
public PageResult(Page<?> page, List<T> list) {
|
||||
this.pageNo = page.getCurrent();
|
||||
this.pageSize = page.getSize();
|
||||
this.totalSize = page.getTotal();
|
||||
this.totalPage = page.getPages();
|
||||
this.data = list;
|
||||
}
|
||||
|
||||
public PageResult(Page<?> page, Class<T> cls) {
|
||||
this.pageNo = page.getCurrent();
|
||||
this.pageSize = page.getSize();
|
||||
this.totalSize = page.getTotal();
|
||||
this.totalPage = page.getPages();
|
||||
this.data = BeanUtil.copyToList(page.getRecords(), cls);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,10 +45,6 @@ public class ContractTemplateManage implements Serializable {
|
||||
@TableField("CONTRACT_TYPE")
|
||||
private String contractType;
|
||||
|
||||
/** 我方地位:甲方/乙方/丙方 */
|
||||
@TableField("SELF_PARTY_ROLE")
|
||||
private String selfPartyRole;
|
||||
|
||||
/** 版本号 */
|
||||
@TableField("VERSION")
|
||||
private String version;
|
||||
|
||||
@@ -45,10 +45,6 @@ public class ContractTemplateDto implements Serializable {
|
||||
/** 合同类型(如 买卖合同、服务合同 等) */
|
||||
private String contractType;
|
||||
|
||||
/**
|
||||
* 我方地位:甲方 / 乙方 / 丙方
|
||||
*/
|
||||
private String selfPartyRole;
|
||||
|
||||
/** 版本号 */
|
||||
private String version;
|
||||
|
||||
@@ -29,7 +29,6 @@ public class ContractTemplateDataHandler {
|
||||
template.setTemplateName(StrUtil.trim(template.getTemplateName()));
|
||||
template.setSource(StrUtil.trim(template.getSource()));
|
||||
template.setContractType(StrUtil.trim(template.getContractType()));
|
||||
template.setSelfPartyRole(StrUtil.trim(template.getSelfPartyRole()));
|
||||
template.setVersion(StrUtil.trim(template.getVersion()));
|
||||
template.setDescription(StrUtil.trim(template.getDescription()));
|
||||
template.setUsageTip(StrUtil.trim(template.getUsageTip()));
|
||||
@@ -86,9 +85,6 @@ public class ContractTemplateDataHandler {
|
||||
if (StrUtil.isBlank(template.getContractType())) {
|
||||
throw new ServiceException("合同类型不能为空");
|
||||
}
|
||||
if (StrUtil.isBlank(template.getSelfPartyRole())) {
|
||||
throw new ServiceException("我方地位不能为空");
|
||||
}
|
||||
if (StrUtil.isBlank(template.getVersion())) {
|
||||
throw new ServiceException("版本号不能为空");
|
||||
}
|
||||
|
||||
@@ -35,8 +35,9 @@ public class ContractTemplateServiceImpl implements ContractTemplateService {
|
||||
@Override
|
||||
public PageResult<ContractTemplateDto> queryTemplateList(ContractTemplateQueryDto queryDto) {
|
||||
Page<ContractTemplateDto> page = new Page<>(queryDto.getPageNo(), queryDto.getPageSize());
|
||||
PageResult<ContractTemplateDto> pageResult = new PageResult<>(contractTemplateMapper.selectTemplatePage(page, queryDto));
|
||||
contractTemplateDataHandler.fillUiFields(pageResult.getRecords());
|
||||
Page<ContractTemplateDto> resultPage = (Page<ContractTemplateDto>) contractTemplateMapper.selectTemplatePage(page, queryDto);
|
||||
PageResult<ContractTemplateDto> pageResult = new PageResult<>(resultPage);
|
||||
contractTemplateDataHandler.fillUiFields(pageResult.getData());
|
||||
return pageResult;
|
||||
}
|
||||
|
||||
|
||||
@@ -158,7 +158,7 @@ public class IldmFeeCustomerInfo implements Serializable {
|
||||
|
||||
/** 组织体系对应的公司编码 */
|
||||
@TableField("ORG_ID")
|
||||
private String orgId;
|
||||
private Long orgId;
|
||||
|
||||
/** 邮箱地址 */
|
||||
@TableField("EMAIL_ADDRESS")
|
||||
|
||||
@@ -11,6 +11,7 @@ import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
|
||||
@@ -113,7 +113,7 @@ public class PartnerManageDto implements Serializable {
|
||||
private String systemType;
|
||||
|
||||
/** 组织体系对应的公司编码 */
|
||||
private String orgId;
|
||||
private Long orgId;
|
||||
|
||||
/** 邮箱地址 */
|
||||
private String emailAddress;
|
||||
|
||||
@@ -16,12 +16,25 @@ import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 相对方数据处理器
|
||||
*
|
||||
* 核心逻辑:相对方有 4 种性质(境内组织/境内个人/境外组织/境外个人),
|
||||
* 不同性质需要填写的字段完全不同。这里集中处理字段清洗、校验和默认值填充,
|
||||
* 避免 Service 层代码臃肿。
|
||||
*/
|
||||
@Component
|
||||
public class PartnerDataHandler {
|
||||
|
||||
/** 保存前数据清洗(去空格、按性质清空不相关字段、设置默认值) */
|
||||
/**
|
||||
* 保存前数据清洗。
|
||||
*
|
||||
* 根据相对方性质分类,把不需要的字段置空。比如境内组织不需要填 TIN 号,
|
||||
* 境外组织不需要填统一社会信用代码。最后给缺失的字段补上默认值。
|
||||
*
|
||||
* oppositeCharacter 对照:
|
||||
* "1" = 境内组织, "2" = 境内个人, "3" = 境外组织, "4" = 境外个人
|
||||
*/
|
||||
public void normalizeBeforeSave(PartnerManageDto partner) {
|
||||
// ========== 所有字段去前后空格 ==========
|
||||
partner.setCustomerNameC(StrUtil.trim(partner.getCustomerNameC()));
|
||||
partner.setCustomerTaxno(StrUtil.trim(partner.getCustomerTaxno()));
|
||||
partner.setCustomerRegaddr(StrUtil.trim(partner.getCustomerRegaddr()));
|
||||
@@ -38,44 +51,62 @@ public class PartnerDataHandler {
|
||||
partner.setRemark(StrUtil.trim(partner.getRemark()));
|
||||
partner.setSyncMessage(StrUtil.trim(partner.getSyncMessage()));
|
||||
|
||||
// ========== 按相对方性质,清空不相关的字段 ==========
|
||||
|
||||
// 组织性质不是"企业"(QY)时,企业二级分类没有意义,直接清掉
|
||||
if (!"QY".equals(partner.getNatureOfEnterpriseOrg())) {
|
||||
partner.setNatureOfEnterpriseOrgLev(null);
|
||||
}
|
||||
|
||||
// 只有境内组织才需要统一社会信用代码和法定代表人,其他性质清空
|
||||
if (!isDomesticOrg(partner)) {
|
||||
partner.setCustomerTaxno(null);
|
||||
partner.setLegalPersonName(null);
|
||||
}
|
||||
|
||||
// 只有个人(境内或境外)才需要证件类型和证件号,组织类清空
|
||||
if (!isDomesticPerson(partner) && !isForeignPerson(partner)) {
|
||||
partner.setCertificateType(null);
|
||||
partner.setCertificateNum(null);
|
||||
}
|
||||
|
||||
// 只有境外组织才需要 TIN 号(税务识别号)
|
||||
if (!isForeignOrg(partner)) {
|
||||
partner.setTinCode(null);
|
||||
}
|
||||
|
||||
// 非境外(组织或个人都不属于)时,国家和国家名称不需要
|
||||
if (!isForeignOrg(partner) && !isForeignPerson(partner)) {
|
||||
partner.setCountry(null);
|
||||
partner.setCountryName(null);
|
||||
}
|
||||
|
||||
// 个人类型(境内/境外)不需要注册地址和注册资本
|
||||
if (!isDomesticOrg(partner) && !isForeignOrg(partner)) {
|
||||
partner.setCustomerRegaddr(null);
|
||||
partner.setRegCapital(null);
|
||||
partner.setRegisteredCapital(null);
|
||||
}
|
||||
|
||||
// 只有境内组织/个人才显示涉港澳台选项,境外不涉及
|
||||
if (!showGatFlag(partner)) {
|
||||
partner.setGatFlag(PartnerManageConstants.GAT_FLAG_NO);
|
||||
}
|
||||
|
||||
// ========== 字段默认值填充(前端没传就用默认值) ==========
|
||||
|
||||
// 是否集团内,默认 "N"(否)
|
||||
partner.setGroupFlag(StrUtil.blankToDefault(partner.getGroupFlag(), PartnerManageConstants.GROUP_FLAG_NO));
|
||||
// 是否涉港澳台,默认 "N"(否)
|
||||
partner.setGatFlag(StrUtil.blankToDefault(partner.getGatFlag(), PartnerManageConstants.GAT_FLAG_NO));
|
||||
// 同步状态,默认 "unsynced"(未同步)
|
||||
partner.setSyncStatus(StrUtil.blankToDefault(partner.getSyncStatus(), PartnerManageConstants.SYNC_STATUS_UNSYNCED));
|
||||
// 相对方状态,默认 "EFFECTUAL"(有效)
|
||||
partner.setOppositeStatus(StrUtil.blankToDefault(partner.getOppositeStatus(), PartnerManageConstants.OPPOSITE_STATUS_EFFECTUAL));
|
||||
// 删除标记,默认 "N"(未删除)
|
||||
partner.setIsDeleted(StrUtil.blankToDefault(partner.getIsDeleted(), PartnerManageConstants.PARTNER_IS_DELETED_NORMAL));
|
||||
|
||||
// isSgat 和 isJtn 由 gatFlag / groupFlag 自动推导(法务系统需要的冗余字段)
|
||||
partner.setIsSgat(PartnerManageConstants.GAT_FLAG_YES.equals(partner.getGatFlag())
|
||||
? PartnerManageConstants.FLAG_ONE
|
||||
: PartnerManageConstants.FLAG_ZERO);
|
||||
@@ -83,17 +114,30 @@ public class PartnerDataHandler {
|
||||
? PartnerManageConstants.FLAG_ONE
|
||||
: PartnerManageConstants.FLAG_ZERO);
|
||||
|
||||
// ========== 清洗联系人数据 ==========
|
||||
List<PartnerContactDto> contacts = partner.getContacts() == null ? new ArrayList<>() : partner.getContacts();
|
||||
contacts = contacts.stream()
|
||||
.filter(Objects::nonNull)
|
||||
.peek(this::normalizeContact)
|
||||
.filter(this::hasAnyContactValue)
|
||||
.filter(Objects::nonNull) // 去掉空对象
|
||||
.peek(this::normalizeContact) // 逐个清洗(去空格、设默认值)
|
||||
.filter(this::hasAnyContactValue) // 去掉全空的联系人
|
||||
.collect(Collectors.toList());
|
||||
partner.setContacts(contacts);
|
||||
}
|
||||
|
||||
/** 保存前数据校验(必填项校验、格式校验、联系人校验) */
|
||||
/**
|
||||
* 保存前数据校验。
|
||||
*
|
||||
* 根据相对方不同性质,校验对应的必填字段。规则与 normalizeBeforeSave 对应:
|
||||
* - 境内组织:必填 统一社会信用代码、法定代表人、注册地址、注册资本
|
||||
* - 境内个人:必填 证件类型、证件号码
|
||||
* - 境外组织:必填 TIN号、国家、注册地址、注册资本
|
||||
* - 境外个人:必填 国家
|
||||
* - 组织类型(境内/境外组织):必填 联系人和邮箱
|
||||
*
|
||||
* 所有性质通用必填:公司名称、公司类型、公司性质、组织性质、是否集团内
|
||||
*/
|
||||
public void validateForSave(PartnerManageDto partner) {
|
||||
// ========== 通用必填校验 ==========
|
||||
if (StrUtil.isBlank(partner.getCustomerNameC())) {
|
||||
throw new ServiceException("公司名称不能为空");
|
||||
}
|
||||
@@ -106,12 +150,15 @@ public class PartnerDataHandler {
|
||||
if (StrUtil.isBlank(partner.getNatureOfEnterpriseOrg())) {
|
||||
throw new ServiceException("组织性质不能为空");
|
||||
}
|
||||
// 如果组织性质选了"企业",必须选企业二级分类(如国企/民企/外企)
|
||||
if ("QY".equals(partner.getNatureOfEnterpriseOrg()) && StrUtil.isBlank(partner.getNatureOfEnterpriseOrgLev())) {
|
||||
throw new ServiceException("组织性质选择企业时,组织性质企业二级不能为空");
|
||||
}
|
||||
if (StrUtil.isBlank(partner.getGroupFlag())) {
|
||||
throw new ServiceException("是否集团内不能为空");
|
||||
}
|
||||
|
||||
// ========== 按性质校验专属必填字段 ==========
|
||||
if (isDomesticOrg(partner) && StrUtil.isBlank(partner.getCustomerTaxno())) {
|
||||
throw new ServiceException("境内组织必须填写统一社会信用代码");
|
||||
}
|
||||
@@ -133,12 +180,15 @@ public class PartnerDataHandler {
|
||||
if (isDomesticOrg(partner) && StrUtil.isBlank(partner.getLegalPersonName())) {
|
||||
throw new ServiceException("境内组织必须填写法定代表人或负责人");
|
||||
}
|
||||
// 组织类型(不论境内境外)都需要注册地址和注册资本
|
||||
if ((isDomesticOrg(partner) || isForeignOrg(partner)) && StrUtil.isBlank(partner.getCustomerRegaddr())) {
|
||||
throw new ServiceException("组织类型必须填写注册地址");
|
||||
}
|
||||
if ((isDomesticOrg(partner) || isForeignOrg(partner)) && StrUtil.isBlank(partner.getRegCapital())) {
|
||||
throw new ServiceException("组织类型必须填写注册资本");
|
||||
}
|
||||
|
||||
// ========== 校验联系人 ==========
|
||||
validateContacts(partner);
|
||||
}
|
||||
|
||||
@@ -209,18 +259,34 @@ public class PartnerDataHandler {
|
||||
return isDomesticOrg(partner) || isDomesticPerson(partner);
|
||||
}
|
||||
|
||||
/**
|
||||
* 相对方是否属于境内组织。
|
||||
* oppositeCharacter = "1" 时表示境内组织。
|
||||
*/
|
||||
private boolean isDomesticOrg(PartnerManageDto partner) {
|
||||
return "1".equals(partner.getOppositeCharacter());
|
||||
}
|
||||
|
||||
/**
|
||||
* 相对方是否属于境内个人。
|
||||
* oppositeCharacter = "2" 时表示境内个人。
|
||||
*/
|
||||
private boolean isDomesticPerson(PartnerManageDto partner) {
|
||||
return "2".equals(partner.getOppositeCharacter());
|
||||
}
|
||||
|
||||
/**
|
||||
* 相对方是否属于境外组织。
|
||||
* oppositeCharacter = "3" 时表示境外组织。
|
||||
*/
|
||||
private boolean isForeignOrg(PartnerManageDto partner) {
|
||||
return "3".equals(partner.getOppositeCharacter());
|
||||
}
|
||||
|
||||
/**
|
||||
* 相对方是否属于境外个人。
|
||||
* oppositeCharacter = "4" 时表示境外个人。
|
||||
*/
|
||||
private boolean isForeignPerson(PartnerManageDto partner) {
|
||||
return "4".equals(partner.getOppositeCharacter());
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.nbport.zgwl.partner.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.nbport.zgwl.common.PageResult;
|
||||
import com.nbport.zgwl.contractpush.dto.PushPayloadDTO;
|
||||
import com.nbport.zgwl.exception.ServiceException;
|
||||
import com.nbport.zgwl.partner.dto.PartnerContactDto;
|
||||
import com.nbport.zgwl.partner.dto.PartnerManageDto;
|
||||
@@ -40,9 +39,9 @@ public class PartnerManageServiceImpl implements PartnerManageService {
|
||||
@Override
|
||||
public PageResult<PartnerManageDto> queryPartnerList(PartnerQueryDto queryDto) {
|
||||
Page<PartnerManageDto> page = new Page<>(queryDto.getPageNo(), queryDto.getPageSize());
|
||||
PageResult<PartnerManageDto> pageResult = new PageResult<>(
|
||||
partnerManageMapper.selectPartnerPage(page, queryDto));
|
||||
attachContacts(pageResult.getRecords());
|
||||
Page<PartnerManageDto> resultPage = (Page<PartnerManageDto>) partnerManageMapper.selectPartnerPage(page, queryDto);
|
||||
PageResult<PartnerManageDto> pageResult = new PageResult<>(resultPage);
|
||||
attachContacts(pageResult.getData());
|
||||
return pageResult;
|
||||
}
|
||||
|
||||
@@ -78,6 +77,7 @@ public class PartnerManageServiceImpl implements PartnerManageService {
|
||||
partner.setUpdateTime(now);
|
||||
partner.setIsDeleted(PartnerManageConstants.PARTNER_IS_DELETED_NORMAL);
|
||||
|
||||
|
||||
partnerManageMapper.insertPartner(partner);
|
||||
saveContacts(partner.getCustomerSysid(), partner.getContacts(), now);
|
||||
return partner.getCustomerSysid();
|
||||
|
||||
@@ -29,7 +29,8 @@ public class StudentService {
|
||||
try {
|
||||
log.info("学生分页查询,user={}, queryDto={}", user, queryDto);
|
||||
Page<Map<String, Object>> page = new Page<>(queryDto.getPageNo(), queryDto.getPageSize());
|
||||
return new PageResult<>(studentMapper.queryList(page, queryDto));
|
||||
Page<Map<String, Object>> resultPage = (Page<Map<String, Object>>) studentMapper.queryList(page, queryDto);
|
||||
return new PageResult<>(resultPage);
|
||||
} catch (Exception e) {
|
||||
log.error("分页查询学生失败", e);
|
||||
throw new ServiceException("分页查询失败");
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
<result property="templateName" column="template_name"/>
|
||||
<result property="source" column="source"/>
|
||||
<result property="contractType" column="contract_type"/>
|
||||
<result property="selfPartyRole" column="self_party_role"/>
|
||||
<result property="version" column="version"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="variableCount" column="variable_count"/>
|
||||
@@ -82,7 +81,7 @@
|
||||
)
|
||||
values
|
||||
(
|
||||
#{id}, #{templateCode}, #{templateName}, #{source}, #{contractType}, #{selfPartyRole},
|
||||
#{id}, #{templateCode}, #{templateName}, #{source}, #{contractType},
|
||||
#{version}, #{status}, #{variableCount}, #{description}, #{usageTip},
|
||||
#{templateFileName}, #{templateFilePath},
|
||||
#{publishOrgIdsJson}, #{publishOrgNamesJson}, #{variableMappingsJson},
|
||||
@@ -96,7 +95,6 @@
|
||||
template_name = #{templateName},
|
||||
source = #{source},
|
||||
contract_type = #{contractType},
|
||||
self_party_role = #{selfPartyRole},
|
||||
version = #{version},
|
||||
status = #{status},
|
||||
variable_count = #{variableCount},
|
||||
|
||||
@@ -13,7 +13,6 @@ CREATE TABLE `contract_template_manage` (
|
||||
`template_name` VARCHAR(200) NOT NULL COMMENT '范本名称',
|
||||
`source` VARCHAR(32) NOT NULL COMMENT '范本类型:标准模板/推荐文本/示范文本/对方文本',
|
||||
`contract_type` VARCHAR(64) NOT NULL COMMENT '合同类型',
|
||||
`self_party_role` VARCHAR(16) NOT NULL COMMENT '我方地位:甲方/乙方/丙方',
|
||||
`version` VARCHAR(32) NOT NULL COMMENT '版本号',
|
||||
`status` VARCHAR(20) NOT NULL DEFAULT 'draft' COMMENT '状态:draft/published/disabled',
|
||||
`variable_count` INT NOT NULL DEFAULT 0 COMMENT '变量数量',
|
||||
|
||||
@@ -31,7 +31,6 @@ CREATE TABLE CONTRACT_TEMPLATE_MANAGE (
|
||||
TEMPLATE_NAME VARCHAR2(200 CHAR) NOT NULL,
|
||||
SOURCE VARCHAR2(32 CHAR) NOT NULL,
|
||||
CONTRACT_TYPE VARCHAR2(64 CHAR) NOT NULL,
|
||||
SELF_PARTY_ROLE VARCHAR2(16 CHAR) NOT NULL,
|
||||
VERSION VARCHAR2(32 CHAR) NOT NULL,
|
||||
STATUS VARCHAR2(20 CHAR) DEFAULT 'draft' NOT NULL,
|
||||
VARIABLE_COUNT NUMBER(10) DEFAULT 0 NOT NULL,
|
||||
@@ -61,7 +60,6 @@ COMMENT ON COLUMN CONTRACT_TEMPLATE_MANAGE.TEMPLATE_CODE IS '范本编号,后
|
||||
COMMENT ON COLUMN CONTRACT_TEMPLATE_MANAGE.TEMPLATE_NAME IS '范本名称';
|
||||
COMMENT ON COLUMN CONTRACT_TEMPLATE_MANAGE.SOURCE IS '范本类型:标准模板/推荐文本/示范文本/对方文本';
|
||||
COMMENT ON COLUMN CONTRACT_TEMPLATE_MANAGE.CONTRACT_TYPE IS '合同类型';
|
||||
COMMENT ON COLUMN CONTRACT_TEMPLATE_MANAGE.SELF_PARTY_ROLE IS '我方地位:甲方/乙方/丙方';
|
||||
COMMENT ON COLUMN CONTRACT_TEMPLATE_MANAGE.VERSION IS '版本号';
|
||||
COMMENT ON COLUMN CONTRACT_TEMPLATE_MANAGE.STATUS IS '状态:draft/published/disabled';
|
||||
COMMENT ON COLUMN CONTRACT_TEMPLATE_MANAGE.VARIABLE_COUNT IS '变量数量';
|
||||
|
||||
@@ -73,9 +73,9 @@ CREATE TABLE ILDM_FEE_CUSTOMER_INFO (
|
||||
DOWN_DATE DATE,
|
||||
OPEN_FLAG VARCHAR2(10 CHAR),
|
||||
CREATE_BY VARCHAR2(64 CHAR),
|
||||
CREATE_TIME TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP,
|
||||
CREATE_TIME DATE DEFAULT SYSDATE,
|
||||
UPDATE_BY VARCHAR2(64 CHAR),
|
||||
UPDATE_TIME TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP,
|
||||
UPDATE_TIME DATE DEFAULT SYSDATE,
|
||||
SYSTEM_TYPE VARCHAR2(20 CHAR),
|
||||
REMARK VARCHAR2(500 CHAR),
|
||||
ORG_ID VARCHAR2(64 CHAR),
|
||||
@@ -110,7 +110,7 @@ CREATE TABLE ILDM_FEE_CUSTOMER_INFO (
|
||||
IS_DELETED VARCHAR2(2 CHAR) DEFAULT 'N',
|
||||
COMMENTS VARCHAR2(500 CHAR),
|
||||
SYNC_STATUS VARCHAR2(20 CHAR) DEFAULT 'unsynced' NOT NULL,
|
||||
SYNC_TIME TIMESTAMP(6),
|
||||
SYNC_TIME DATE,
|
||||
SYNC_MESSAGE VARCHAR2(500 CHAR),
|
||||
CONSTRAINT PK_ILDM_FEE_CUSTOMER_INFO PRIMARY KEY (CUSTOMER_SYSID)
|
||||
);
|
||||
@@ -149,9 +149,8 @@ COMMENT ON COLUMN ILDM_FEE_CUSTOMER_INFO.NATURE_OF_ENTERPRISE_ORG_LEV IS '组织
|
||||
COMMENT ON COLUMN ILDM_FEE_CUSTOMER_INFO.RELATIVE_TYPE IS '类型';
|
||||
COMMENT ON COLUMN ILDM_FEE_CUSTOMER_INFO.IS_DELETED IS '法务系统删除标记';
|
||||
COMMENT ON COLUMN ILDM_FEE_CUSTOMER_INFO.COMMENTS IS '备注【法务】';
|
||||
COMMENT ON COLUMN ILDM_FEE_CUSTOMER_INFO.SYNC_STATUS IS '同步状态';
|
||||
COMMENT ON COLUMN ILDM_FEE_CUSTOMER_INFO.SYNC_TIME IS '最后同步时间';
|
||||
COMMENT ON COLUMN ILDM_FEE_CUSTOMER_INFO.SYNC_MESSAGE IS '同步说明';
|
||||
|
||||
|
||||
|
||||
CREATE TABLE SEAL_PARTNER_CONTACT (
|
||||
ID NUMBER(19) NOT NULL,
|
||||
@@ -163,9 +162,9 @@ CREATE TABLE SEAL_PARTNER_CONTACT (
|
||||
SORT_ORDER NUMBER(10) DEFAULT 1 NOT NULL,
|
||||
DEL_FLAG CHAR(1 CHAR) DEFAULT '0' NOT NULL,
|
||||
CREATE_BY VARCHAR2(64 CHAR),
|
||||
CREATE_TIME TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP,
|
||||
CREATE_TIME DATE DEFAULT SYSDATE,
|
||||
UPDATE_BY VARCHAR2(64 CHAR),
|
||||
UPDATE_TIME TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP,
|
||||
UPDATE_TIME DATE DEFAULT SYSDATE,
|
||||
REMARK VARCHAR2(500 CHAR),
|
||||
CONSTRAINT PK_SEAL_PARTNER_CONTACT PRIMARY KEY (ID)
|
||||
);
|
||||
@@ -190,12 +189,12 @@ INSERT INTO ILDM_FEE_CUSTOMER_INFO
|
||||
COMMENTS, SYNC_STATUS, SYNC_TIME, SYNC_MESSAGE)
|
||||
VALUES
|
||||
(1, '宁波港船务货运代理有限公司', '91330201MA2ABCDE9X', '宁波市北仑区明州西路188号', 'local_test',
|
||||
TO_TIMESTAMP('2026-05-20 09:12:33', 'YYYY-MM-DD HH24:MI:SS'),
|
||||
'local_test', TO_TIMESTAMP('2026-05-20 09:15:10', 'YYYY-MM-DD HH24:MI:SS'),
|
||||
TO_DATE('2026-05-20 09:12:33', 'YYYY-MM-DD HH24:MI:SS'),
|
||||
'local_test', TO_DATE('2026-05-20 09:15:10', 'YYYY-MM-DD HH24:MI:SS'),
|
||||
'zhoujingli@example.com', 'JT-10256', '1', 'N', 'N', NULL, NULL,
|
||||
'李四', '5000万元', 'OPP-202605210001', 'EFFECTUAL', '0', '0',
|
||||
'QY', 'GNQY', 'supplier', 'N',
|
||||
'本地初始化测试数据', 'synced', TO_TIMESTAMP('2026-05-20 09:15:10', 'YYYY-MM-DD HH24:MI:SS'), '已按数据采集接口规范同步到法务系统');
|
||||
'本地初始化测试数据', 'synced', TO_DATE('2026-05-20 09:15:10', 'YYYY-MM-DD HH24:MI:SS'), '已按数据采集接口规范同步到法务系统');
|
||||
|
||||
INSERT INTO ILDM_FEE_CUSTOMER_INFO
|
||||
(CUSTOMER_SYSID, CUSTOMER_NAME_C, CUSTOMER_TAXNO, CUSTOMER_REGADDR, CREATE_BY, CREATE_TIME, UPDATE_BY, UPDATE_TIME,
|
||||
@@ -205,8 +204,8 @@ INSERT INTO ILDM_FEE_CUSTOMER_INFO
|
||||
COMMENTS, SYNC_STATUS, SYNC_TIME, SYNC_MESSAGE)
|
||||
VALUES
|
||||
(2, '王小明', NULL, NULL, 'local_test',
|
||||
TO_TIMESTAMP('2026-05-20 14:20:05', 'YYYY-MM-DD HH24:MI:SS'),
|
||||
'local_test', TO_TIMESTAMP('2026-05-20 14:20:05', 'YYYY-MM-DD HH24:MI:SS'),
|
||||
TO_DATE('2026-05-20 14:20:05', 'YYYY-MM-DD HH24:MI:SS'),
|
||||
'local_test', TO_DATE('2026-05-20 14:20:05', 'YYYY-MM-DD HH24:MI:SS'),
|
||||
NULL, NULL, '2', 'N', 'N', NULL, NULL,
|
||||
NULL, NULL, 'OPP-202605210002', 'EFFECTUAL', '0', '0',
|
||||
'QT', NULL, 'client', 'N',
|
||||
@@ -220,36 +219,36 @@ INSERT INTO ILDM_FEE_CUSTOMER_INFO
|
||||
COMMENTS, SYNC_STATUS, SYNC_TIME, SYNC_MESSAGE)
|
||||
VALUES
|
||||
(3, 'Ocean Energy Pte. Ltd.', NULL, '88 Harbour Street, London', 'local_test',
|
||||
TO_TIMESTAMP('2026-05-18 11:08:22', 'YYYY-MM-DD HH24:MI:SS'),
|
||||
'local_test', TO_TIMESTAMP('2026-05-18 11:10:40', 'YYYY-MM-DD HH24:MI:SS'),
|
||||
TO_DATE('2026-05-18 11:08:22', 'YYYY-MM-DD HH24:MI:SS'),
|
||||
'local_test', TO_DATE('2026-05-18 11:10:40', 'YYYY-MM-DD HH24:MI:SS'),
|
||||
'alice.brown@ocean-energy.com', 'JT-10888', '3', 'N', 'N', 'GJ826', '英国',
|
||||
NULL, 'USD 2,000,000', 'OPP-202605210003', 'EFFECTUAL', '0', '0',
|
||||
'QY', 'WZQY', 'Partner', 'N',
|
||||
'境外组织测试数据', 'failed', TO_TIMESTAMP('2026-05-18 11:10:40', 'YYYY-MM-DD HH24:MI:SS'), '法务系统返回:注册地址长度超限,请修正后重试');
|
||||
'境外组织测试数据', 'failed', TO_DATE('2026-05-18 11:10:40', 'YYYY-MM-DD HH24:MI:SS'), '法务系统返回:注册地址长度超限,请修正后重试');
|
||||
|
||||
INSERT INTO SEAL_PARTNER_CONTACT
|
||||
(ID, PARTNER_RECORD_ID, CONTACT_NAME, CONTACT_PHONE, POSTAL_ADDRESS, EMAIL,
|
||||
SORT_ORDER, DEL_FLAG, CREATE_BY, CREATE_TIME, UPDATE_BY, UPDATE_TIME, REMARK)
|
||||
VALUES
|
||||
(1, 1, '周经理', '15757460062', '宁波市北仑区明州西路188号A座', 'zhoujingli@example.com',
|
||||
1, '0', 'local_test', TO_TIMESTAMP('2026-05-20 09:12:33', 'YYYY-MM-DD HH24:MI:SS'),
|
||||
'local_test', TO_TIMESTAMP('2026-05-20 09:12:33', 'YYYY-MM-DD HH24:MI:SS'), '主联系人');
|
||||
1, '0', 'local_test', TO_DATE('2026-05-20 09:12:33', 'YYYY-MM-DD HH24:MI:SS'),
|
||||
'local_test', TO_DATE('2026-05-20 09:12:33', 'YYYY-MM-DD HH24:MI:SS'), '主联系人');
|
||||
|
||||
INSERT INTO SEAL_PARTNER_CONTACT
|
||||
(ID, PARTNER_RECORD_ID, CONTACT_NAME, CONTACT_PHONE, POSTAL_ADDRESS, EMAIL,
|
||||
SORT_ORDER, DEL_FLAG, CREATE_BY, CREATE_TIME, UPDATE_BY, UPDATE_TIME, REMARK)
|
||||
VALUES
|
||||
(2, 3, 'Alice Brown', '+44-20-8899-0001', '88 Harbour Street, London', 'alice.brown@ocean-energy.com',
|
||||
1, '0', 'local_test', TO_TIMESTAMP('2026-05-18 11:08:22', 'YYYY-MM-DD HH24:MI:SS'),
|
||||
'local_test', TO_TIMESTAMP('2026-05-18 11:08:22', 'YYYY-MM-DD HH24:MI:SS'), '海外主联系人');
|
||||
1, '0', 'local_test', TO_DATE('2026-05-18 11:08:22', 'YYYY-MM-DD HH24:MI:SS'),
|
||||
'local_test', TO_DATE('2026-05-18 11:08:22', 'YYYY-MM-DD HH24:MI:SS'), '海外主联系人');
|
||||
|
||||
INSERT INTO SEAL_PARTNER_CONTACT
|
||||
(ID, PARTNER_RECORD_ID, CONTACT_NAME, CONTACT_PHONE, POSTAL_ADDRESS, EMAIL,
|
||||
SORT_ORDER, DEL_FLAG, CREATE_BY, CREATE_TIME, UPDATE_BY, UPDATE_TIME, REMARK)
|
||||
VALUES
|
||||
(3, 3, 'Tom Lee', '+44-20-8899-0002', '88 Harbour Street, London', 'tom.lee@ocean-energy.com',
|
||||
2, '0', 'local_test', TO_TIMESTAMP('2026-05-18 11:08:22', 'YYYY-MM-DD HH24:MI:SS'),
|
||||
'local_test', TO_TIMESTAMP('2026-05-18 11:08:22', 'YYYY-MM-DD HH24:MI:SS'), '备用联系人');
|
||||
2, '0', 'local_test', TO_DATE('2026-05-18 11:08:22', 'YYYY-MM-DD HH24:MI:SS'),
|
||||
'local_test', TO_DATE('2026-05-18 11:08:22', 'YYYY-MM-DD HH24:MI:SS'), '备用联系人');
|
||||
|
||||
CREATE SEQUENCE SEQ_ILDM_FEE_CUSTOMER_INFO
|
||||
START WITH 4
|
||||
|
||||
Reference in New Issue
Block a user