From 4721490132f15aa81bb6ef39c2b91d8a14dea158 Mon Sep 17 00:00:00 2001 From: zhouxiaofeng <2946471396@qq.com> Date: Thu, 28 May 2026 15:06:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=9F=E8=83=BD=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- partner_alter_date_oracle.sql | 26 +++++++ .../com/nbport/zgwl/common/PageResult.java | 67 +++++++++++++--- .../domain/ContractTemplateManage.java | 4 - .../manifest/dto/ContractTemplateDto.java | 4 - .../handler/ContractTemplateDataHandler.java | 4 - .../service/ContractTemplateServiceImpl.java | 5 +- .../partner/domain/IldmFeeCustomerInfo.java | 2 +- .../partner/domain/SealPartnerContact.java | 1 + .../zgwl/partner/dto/PartnerManageDto.java | 2 +- .../partner/handler/PartnerDataHandler.java | 76 +++++++++++++++++-- .../service/PartnerManageServiceImpl.java | 8 +- .../nbport/zgwl/service/StudentService.java | 3 +- .../manifest/ContractTemplateMapper.xml | 4 +- zgwl_manifest_tables.sql | 1 - zgwl_manifest_tables_oracle.sql | 2 - zgwl_partner_tables_oracle.sql | 43 +++++------ 16 files changed, 186 insertions(+), 66 deletions(-) create mode 100644 partner_alter_date_oracle.sql diff --git a/partner_alter_date_oracle.sql b/partner_alter_date_oracle.sql new file mode 100644 index 0000000..000f704 --- /dev/null +++ b/partner_alter_date_oracle.sql @@ -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; diff --git a/src/main/java/com/nbport/zgwl/common/PageResult.java b/src/main/java/com/nbport/zgwl/common/PageResult.java index 3b5c5d1..9e73cea 100644 --- a/src/main/java/com/nbport/zgwl/common/PageResult.java +++ b/src/main/java/com/nbport/zgwl/common/PageResult.java @@ -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 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 records = new ArrayList<>(); + /** + * 分页数据 + */ + @JsonView(Views.Public.class) + private List data; - public PageResult(IPage page) { + public PageResult() { + } + + public PageResult(Page 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 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 cls) { + this.pageNo = page.getCurrent(); + this.pageSize = page.getSize(); + this.totalSize = page.getTotal(); + this.totalPage = page.getPages(); + this.data = BeanUtil.copyToList(page.getRecords(), cls); } } diff --git a/src/main/java/com/nbport/zgwl/manifest/domain/ContractTemplateManage.java b/src/main/java/com/nbport/zgwl/manifest/domain/ContractTemplateManage.java index 2735e46..52d5707 100644 --- a/src/main/java/com/nbport/zgwl/manifest/domain/ContractTemplateManage.java +++ b/src/main/java/com/nbport/zgwl/manifest/domain/ContractTemplateManage.java @@ -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; diff --git a/src/main/java/com/nbport/zgwl/manifest/dto/ContractTemplateDto.java b/src/main/java/com/nbport/zgwl/manifest/dto/ContractTemplateDto.java index 4fc8c2e..3e84f5a 100644 --- a/src/main/java/com/nbport/zgwl/manifest/dto/ContractTemplateDto.java +++ b/src/main/java/com/nbport/zgwl/manifest/dto/ContractTemplateDto.java @@ -45,10 +45,6 @@ public class ContractTemplateDto implements Serializable { /** 合同类型(如 买卖合同、服务合同 等) */ private String contractType; - /** - * 我方地位:甲方 / 乙方 / 丙方 - */ - private String selfPartyRole; /** 版本号 */ private String version; diff --git a/src/main/java/com/nbport/zgwl/manifest/handler/ContractTemplateDataHandler.java b/src/main/java/com/nbport/zgwl/manifest/handler/ContractTemplateDataHandler.java index c91af0f..741651a 100644 --- a/src/main/java/com/nbport/zgwl/manifest/handler/ContractTemplateDataHandler.java +++ b/src/main/java/com/nbport/zgwl/manifest/handler/ContractTemplateDataHandler.java @@ -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("版本号不能为空"); } diff --git a/src/main/java/com/nbport/zgwl/manifest/service/ContractTemplateServiceImpl.java b/src/main/java/com/nbport/zgwl/manifest/service/ContractTemplateServiceImpl.java index 6d9b613..5726779 100644 --- a/src/main/java/com/nbport/zgwl/manifest/service/ContractTemplateServiceImpl.java +++ b/src/main/java/com/nbport/zgwl/manifest/service/ContractTemplateServiceImpl.java @@ -35,8 +35,9 @@ public class ContractTemplateServiceImpl implements ContractTemplateService { @Override public PageResult queryTemplateList(ContractTemplateQueryDto queryDto) { Page page = new Page<>(queryDto.getPageNo(), queryDto.getPageSize()); - PageResult pageResult = new PageResult<>(contractTemplateMapper.selectTemplatePage(page, queryDto)); - contractTemplateDataHandler.fillUiFields(pageResult.getRecords()); + Page resultPage = (Page) contractTemplateMapper.selectTemplatePage(page, queryDto); + PageResult pageResult = new PageResult<>(resultPage); + contractTemplateDataHandler.fillUiFields(pageResult.getData()); return pageResult; } diff --git a/src/main/java/com/nbport/zgwl/partner/domain/IldmFeeCustomerInfo.java b/src/main/java/com/nbport/zgwl/partner/domain/IldmFeeCustomerInfo.java index b950bc3..e4f7163 100644 --- a/src/main/java/com/nbport/zgwl/partner/domain/IldmFeeCustomerInfo.java +++ b/src/main/java/com/nbport/zgwl/partner/domain/IldmFeeCustomerInfo.java @@ -158,7 +158,7 @@ public class IldmFeeCustomerInfo implements Serializable { /** 组织体系对应的公司编码 */ @TableField("ORG_ID") - private String orgId; + private Long orgId; /** 邮箱地址 */ @TableField("EMAIL_ADDRESS") diff --git a/src/main/java/com/nbport/zgwl/partner/domain/SealPartnerContact.java b/src/main/java/com/nbport/zgwl/partner/domain/SealPartnerContact.java index 4ec4f7a..36a6645 100644 --- a/src/main/java/com/nbport/zgwl/partner/domain/SealPartnerContact.java +++ b/src/main/java/com/nbport/zgwl/partner/domain/SealPartnerContact.java @@ -11,6 +11,7 @@ import lombok.EqualsAndHashCode; import java.io.Serial; import java.io.Serializable; +import java.time.LocalDate; import java.time.LocalDateTime; /** diff --git a/src/main/java/com/nbport/zgwl/partner/dto/PartnerManageDto.java b/src/main/java/com/nbport/zgwl/partner/dto/PartnerManageDto.java index 8e6089b..71e035c 100644 --- a/src/main/java/com/nbport/zgwl/partner/dto/PartnerManageDto.java +++ b/src/main/java/com/nbport/zgwl/partner/dto/PartnerManageDto.java @@ -113,7 +113,7 @@ public class PartnerManageDto implements Serializable { private String systemType; /** 组织体系对应的公司编码 */ - private String orgId; + private Long orgId; /** 邮箱地址 */ private String emailAddress; diff --git a/src/main/java/com/nbport/zgwl/partner/handler/PartnerDataHandler.java b/src/main/java/com/nbport/zgwl/partner/handler/PartnerDataHandler.java index 461e7f4..2fa13df 100644 --- a/src/main/java/com/nbport/zgwl/partner/handler/PartnerDataHandler.java +++ b/src/main/java/com/nbport/zgwl/partner/handler/PartnerDataHandler.java @@ -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 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()); } diff --git a/src/main/java/com/nbport/zgwl/partner/service/PartnerManageServiceImpl.java b/src/main/java/com/nbport/zgwl/partner/service/PartnerManageServiceImpl.java index 437d3f9..ac60574 100644 --- a/src/main/java/com/nbport/zgwl/partner/service/PartnerManageServiceImpl.java +++ b/src/main/java/com/nbport/zgwl/partner/service/PartnerManageServiceImpl.java @@ -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 queryPartnerList(PartnerQueryDto queryDto) { Page page = new Page<>(queryDto.getPageNo(), queryDto.getPageSize()); - PageResult pageResult = new PageResult<>( - partnerManageMapper.selectPartnerPage(page, queryDto)); - attachContacts(pageResult.getRecords()); + Page resultPage = (Page) partnerManageMapper.selectPartnerPage(page, queryDto); + PageResult 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(); diff --git a/src/main/java/com/nbport/zgwl/service/StudentService.java b/src/main/java/com/nbport/zgwl/service/StudentService.java index f5ca6e7..80130ea 100644 --- a/src/main/java/com/nbport/zgwl/service/StudentService.java +++ b/src/main/java/com/nbport/zgwl/service/StudentService.java @@ -29,7 +29,8 @@ public class StudentService { try { log.info("学生分页查询,user={}, queryDto={}", user, queryDto); Page> page = new Page<>(queryDto.getPageNo(), queryDto.getPageSize()); - return new PageResult<>(studentMapper.queryList(page, queryDto)); + Page> resultPage = (Page>) studentMapper.queryList(page, queryDto); + return new PageResult<>(resultPage); } catch (Exception e) { log.error("分页查询学生失败", e); throw new ServiceException("分页查询失败"); diff --git a/src/main/resources/mapper/manifest/ContractTemplateMapper.xml b/src/main/resources/mapper/manifest/ContractTemplateMapper.xml index bfb749e..e214ae7 100644 --- a/src/main/resources/mapper/manifest/ContractTemplateMapper.xml +++ b/src/main/resources/mapper/manifest/ContractTemplateMapper.xml @@ -12,7 +12,6 @@ - @@ -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}, diff --git a/zgwl_manifest_tables.sql b/zgwl_manifest_tables.sql index d375d60..b8cbc85 100644 --- a/zgwl_manifest_tables.sql +++ b/zgwl_manifest_tables.sql @@ -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 '变量数量', diff --git a/zgwl_manifest_tables_oracle.sql b/zgwl_manifest_tables_oracle.sql index cbdd54f..7f1fa08 100644 --- a/zgwl_manifest_tables_oracle.sql +++ b/zgwl_manifest_tables_oracle.sql @@ -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 '变量数量'; diff --git a/zgwl_partner_tables_oracle.sql b/zgwl_partner_tables_oracle.sql index 1eeac13..546b27a 100644 --- a/zgwl_partner_tables_oracle.sql +++ b/zgwl_partner_tables_oracle.sql @@ -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