修复 Redis 断连重连并更新中介导入文案

This commit is contained in:
wkc
2026-04-22 09:46:36 +08:00
parent 624b51292f
commit fc6af5234d
13 changed files with 392 additions and 8 deletions

View File

@@ -4,7 +4,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.info.collection.domain.CcdiCustEnterpriseRelation;
import com.ruoyi.info.collection.domain.CcdiEnterpriseBaseInfo; import com.ruoyi.info.collection.domain.CcdiEnterpriseBaseInfo;
import com.ruoyi.info.collection.domain.CcdiIntermediaryEnterpriseRelation;
import com.ruoyi.info.collection.domain.CcdiStaffEnterpriseRelation;
import com.ruoyi.info.collection.domain.dto.CcdiEnterpriseBaseInfoAddDTO; import com.ruoyi.info.collection.domain.dto.CcdiEnterpriseBaseInfoAddDTO;
import com.ruoyi.info.collection.domain.dto.CcdiEnterpriseBaseInfoEditDTO; import com.ruoyi.info.collection.domain.dto.CcdiEnterpriseBaseInfoEditDTO;
import com.ruoyi.info.collection.domain.dto.CcdiEnterpriseBaseInfoQueryDTO; import com.ruoyi.info.collection.domain.dto.CcdiEnterpriseBaseInfoQueryDTO;
@@ -14,6 +17,9 @@ import com.ruoyi.info.collection.enums.DataSource;
import com.ruoyi.info.collection.enums.EnterpriseRiskLevel; import com.ruoyi.info.collection.enums.EnterpriseRiskLevel;
import com.ruoyi.info.collection.enums.EnterpriseSource; import com.ruoyi.info.collection.enums.EnterpriseSource;
import com.ruoyi.info.collection.mapper.CcdiEnterpriseBaseInfoMapper; import com.ruoyi.info.collection.mapper.CcdiEnterpriseBaseInfoMapper;
import com.ruoyi.info.collection.mapper.CcdiCustEnterpriseRelationMapper;
import com.ruoyi.info.collection.mapper.CcdiIntermediaryEnterpriseRelationMapper;
import com.ruoyi.info.collection.mapper.CcdiStaffEnterpriseRelationMapper;
import com.ruoyi.info.collection.service.ICcdiEnterpriseBaseInfoImportService; import com.ruoyi.info.collection.service.ICcdiEnterpriseBaseInfoImportService;
import com.ruoyi.info.collection.service.ICcdiEnterpriseBaseInfoService; import com.ruoyi.info.collection.service.ICcdiEnterpriseBaseInfoService;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
@@ -25,6 +31,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.StringJoiner;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@@ -40,6 +47,15 @@ public class CcdiEnterpriseBaseInfoServiceImpl implements ICcdiEnterpriseBaseInf
@Resource @Resource
private CcdiEnterpriseBaseInfoMapper enterpriseBaseInfoMapper; private CcdiEnterpriseBaseInfoMapper enterpriseBaseInfoMapper;
@Resource
private CcdiStaffEnterpriseRelationMapper staffEnterpriseRelationMapper;
@Resource
private CcdiCustEnterpriseRelationMapper custEnterpriseRelationMapper;
@Resource
private CcdiIntermediaryEnterpriseRelationMapper intermediaryEnterpriseRelationMapper;
@Resource @Resource
private ICcdiEnterpriseBaseInfoImportService enterpriseBaseInfoImportService; private ICcdiEnterpriseBaseInfoImportService enterpriseBaseInfoImportService;
@@ -96,6 +112,9 @@ public class CcdiEnterpriseBaseInfoServiceImpl implements ICcdiEnterpriseBaseInf
if (socialCreditCodes == null || socialCreditCodes.length == 0) { if (socialCreditCodes == null || socialCreditCodes.length == 0) {
return 0; return 0;
} }
for (String socialCreditCode : socialCreditCodes) {
validateDeleteRelations(socialCreditCode);
}
return enterpriseBaseInfoMapper.deleteBatchIds(List.of(socialCreditCodes)); return enterpriseBaseInfoMapper.deleteBatchIds(List.of(socialCreditCodes));
} }
@@ -179,4 +198,23 @@ public class CcdiEnterpriseBaseInfoServiceImpl implements ICcdiEnterpriseBaseInf
} }
return false; return false;
} }
private void validateDeleteRelations(String socialCreditCode) {
StringJoiner relationTypes = new StringJoiner("");
if (staffEnterpriseRelationMapper.selectCount(new LambdaQueryWrapper<CcdiStaffEnterpriseRelation>()
.eq(CcdiStaffEnterpriseRelation::getSocialCreditCode, socialCreditCode)) > 0) {
relationTypes.add("员工");
}
if (custEnterpriseRelationMapper.selectCount(new LambdaQueryWrapper<CcdiCustEnterpriseRelation>()
.eq(CcdiCustEnterpriseRelation::getSocialCreditCode, socialCreditCode)) > 0) {
relationTypes.add("信贷客户");
}
if (intermediaryEnterpriseRelationMapper.selectCount(new LambdaQueryWrapper<CcdiIntermediaryEnterpriseRelation>()
.eq(CcdiIntermediaryEnterpriseRelation::getSocialCreditCode, socialCreditCode)) > 0) {
relationTypes.add("中介");
}
if (relationTypes.length() > 0) {
throw new RuntimeException("统一社会信用代码[" + socialCreditCode + "]已关联" + relationTypes + ",删除失败");
}
}
} }

View File

@@ -0,0 +1,34 @@
# 实体库删除关联校验后端实施计划
## 目标
在实体库管理删除接口中增加删除前校验,确保待删除实体与中介、员工、信贷客户不存在关联关系;一旦存在任一关联,当前删除操作直接失败并返回明确提示。
## 涉及文件
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/service/impl/CcdiEnterpriseBaseInfoServiceImpl.java`
- `ccdi-info-collection/src/test/java/com/ruoyi/info/collection/service/CcdiEnterpriseBaseInfoServiceImplTest.java`
## 实施步骤
1.`CcdiEnterpriseBaseInfoServiceImpl` 的批量删除入口增加逐条删除前校验。
2. 使用现有三张关系表进行计数判断:
`ccdi_staff_enterprise_relation`
`ccdi_cust_enterprise_relation`
`ccdi_intermediary_enterprise_relation`
3. 若任一关系存在,拼装“员工/信贷客户/中介”中文提示并抛出运行时异常,阻断整批删除。
4. 保持所有待删实体均通过校验后,再执行原有批量删除。
5. 补充服务层单元测试,覆盖无关联可删除、单一关联拦截、多关联拦截三类场景。
## 验证命令
```bash
mvn -pl ccdi-info-collection -am -Dsurefire.failIfNoSpecifiedTests=false -Dtest=CcdiEnterpriseBaseInfoServiceImplTest test
```
## 完成标准
- 实体库删除前会校验员工、信贷客户、中介三类关联
- 存在关联时接口返回明确失败原因,不执行删除
- 无关联时保留原有批量删除行为
- 定向单元测试通过

View File

@@ -0,0 +1,53 @@
# Redis 断连自动重连修复实施计划
## 1. 背景
后端当前通过 Spring Boot 自动配置的 Lettuce `RedisConnectionFactory` 提供 Redis 连接。现场反馈 Redis 短暂断连或重启后,后端不会恢复可用连接,后续 Redis 访问持续失败。
## 2. 问题定位
- 项目未自定义 `LettuceConnectionFactory`,使用的是 Spring Boot 默认装配。
- 默认共享连接在未开启连接校验时,存在继续复用失效连接的风险。
- 当前 `ruoyi-framework` 仅配置了 `RedisTemplate` 序列化,未对 Lettuce 连接工厂做任何重连相关定制。
## 3. 实施方案
### 3.1 最短路径修复
`ruoyi-framework` 的 Redis 配置中增加一个 `BeanPostProcessor`,对 Spring Boot 自动创建的 `LettuceConnectionFactory` 统一开启 `validateConnection`
### 3.2 预期效果
- Redis 恢复可用后,连接工厂在获取共享连接时会先校验连接有效性。
- 避免继续复用已经失效的 Lettuce 共享连接。
- 不调整现有 `RedisTemplate`、业务缓存调用方式和 YAML 配置结构。
## 4. 代码改动点
- `ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java`
- 增加 Lettuce 连接工厂后处理器。
- 在 Bean 初始化阶段统一开启 `validateConnection`
- `ruoyi-framework/src/test/java/com/ruoyi/framework/config/RedisConfigTest.java`
- 新增回归测试,校验 Lettuce 连接工厂会被强制打开连接校验。
- `ruoyi-framework/pom.xml`
- 增加 `spring-boot-starter-test` 测试依赖。
## 5. 验证计划
执行以下命令验证:
```bash
mvn -pl ruoyi-framework -am test -Dtest=RedisConfigTest -Dsurefire.failIfNoSpecifiedTests=false
```
验证通过标准:
- `RedisConfigTest` 通过。
- `ruoyi-framework` 模块构建成功。
- 不影响 `ruoyi-common``ruoyi-system` 作为依赖模块的测试阶段执行。
## 6. 影响范围
- 影响模块:`ruoyi-framework`
- 影响对象:所有通过 Spring 容器注入并复用 `RedisConnectionFactory` / `RedisTemplate` 的后端 Redis 调用
- 不涉及数据库结构、前端页面、接口入参与返回结构变更

View File

@@ -0,0 +1,75 @@
# 实体库管理导入浏览器测试记录
## 测试目标
- 在真实页面中下载“实体库管理”导入模板
- 基于下载模板生成覆盖全部后端显式校验分支的测试数据
- 通过页面上传测试文件并核对导入结果、失败记录与列表落库情况
## 测试环境
- 测试日期2026-04-21
- 前端地址:`http://127.0.0.1:8080`
- 后端地址:`http://127.0.0.1:62318`
- 登录账号:`admin`
- 登录方式:浏览器页面登录
## 测试文件
- 页面下载模板:`/Users/wkc/Desktop/ccdi/ccdi/.playwright-cli/实体库管理模板-1776753846277.xlsx`
- 生成测试文件:`/Users/wkc/Desktop/ccdi/ccdi/output/spreadsheet/enterprise-base-info-import-browser-test.xlsx`
## 测试步骤
1. 登录系统后进入“信息维护 -> 实体库管理”页面。
2. 打开导入弹窗并点击“下载模板”。
3. 基于下载模板填写 11 条测试数据。
4. 在导入弹窗上传测试文件并点击“确定”。
5. 等待异步导入完成。
6. 核对列表新增数据、失败记录条数与失败原因。
## 测试数据覆盖范围
- 成功导入完整数据 1 条
- 成功导入最简数据 1 条
- 与库内已存在统一社会信用代码重复 1 条
- 文件内统一社会信用代码重复 1 条
- 企业名称为空 1 条
- 统一社会信用代码为空 1 条
- 统一社会信用代码格式错误 1 条
- 经营状态为空 1 条
- 风险等级非法 1 条
- 企业来源非法 1 条
- 数据来源非法 1 条
## 页面验证结果
- 模板下载成功。
- 上传请求成功发送到 `/dev-api/ccdi/enterpriseBaseInfo/importData`
- 导入任务状态写入浏览器本地存储:
- `status=PARTIAL_SUCCESS`
- `totalCount=11`
- `successCount=2`
- `failureCount=9`
- 列表总数由 `2001` 增加到 `2003`,与成功导入 2 条一致。
- 新增记录已出现在列表顶部:
- `浏览器测试实体企业A / 992604210000000001`
- `浏览器测试实体企业B / 992604210000000002`
- “查看导入失败记录”弹窗成功展示 9 条失败数据。
## 失败原因核对
- `111333432959145585`:统一社会信用代码已存在
- `992604210000000002`:统一社会信用代码在导入文件中重复
- `992604210000000003`:企业名称不能为空
- 空统一社会信用代码:统一社会信用代码不能为空
- `ABC123`:统一社会信用代码格式不正确
- `992604210000000004`:经营状态不能为空
- `992604210000000005`:风险等级不在允许范围内
- `992604210000000006`:企业来源不在允许范围内
- `992604210000000007`:数据来源不在允许范围内
## 结论
- 实体库管理导入功能在真实浏览器场景下可正常完成模板下载、文件上传、异步导入、成功入库和失败记录展示。
- 本次基于页面和后端实际行为验证,后端当前显式校验分支均已命中且返回结果符合预期。

View File

@@ -0,0 +1,22 @@
# 实体库删除关联校验实施记录
## 基本信息
- 日期2026-04-21
- 范围:实体库管理后端删除校验
- 关联计划:`docs/plans/backend/2026-04-21-enterprise-delete-relation-check-backend-implementation.md`
## 实施内容
-`CcdiEnterpriseBaseInfoServiceImpl``deleteEnterpriseBaseInfoByIds` 中增加删除前校验逻辑。
- 删除前分别查询员工实体关联、信贷客户实体关联、中介关联机构三张关系表,只要任一表存在当前统一社会信用代码的关联记录,即终止删除。
- 失败提示按实际命中的关联类型拼装中文文案,例如“已关联员工”“已关联员工、信贷客户、中介”,便于页面直接回显原因。
- 保持“先全部校验、后统一删除”的处理方式,避免批量删除时出现部分删除成功、部分失败的不一致情况。
- 补充 `CcdiEnterpriseBaseInfoServiceImplTest`,覆盖删除成功、员工关联拦截、多关联拦截场景。
## 验证结果
- 执行命令:
`mvn -pl ccdi-info-collection -am -Dsurefire.failIfNoSpecifiedTests=false -Dtest=CcdiEnterpriseBaseInfoServiceImplTest test`
- 结果PASS
- 备注Maven 构建过程中仍存在项目原有 `ccdi-lsfx` 重复依赖声明 warning本次改动未触碰该问题不影响本次测试通过。

View File

@@ -0,0 +1,76 @@
# 中介库管理导入功能浏览器测试实施记录
## 本次操作
- 使用真实浏览器进入 `中介库管理` 页面。
- 分别下载两类导入模板:
- 中介和亲属信息导入模板
- 中介实体关联关系导入模板
- 基于下载模板生成浏览器回传测试文件,并在页面上传验证。
## 测试文件
- `output/spreadsheet/intermediary_person_import_browser_phase1.xlsx`
- `output/spreadsheet/intermediary_person_import_browser_phase2_existing_db_cases.xlsx`
- `output/spreadsheet/intermediary_enterprise_relation_import_browser_phase1.xlsx`
- `output/spreadsheet/intermediary_enterprise_relation_import_browser_phase2_db_duplicate.xlsx`
## 验证结果
### 中介和亲属信息导入
- 第一轮导入结果:总数 `13`,成功 `4`,失败 `9`
- 第二轮导入结果:总数 `2`,成功 `0`,失败 `2`
- 成功数据已在页面列表可见:
- `自动化中介本人A`
- `自动化中介A配偶`
- `文件内重复本人1`
- `文件内重复亲属1`
- 页面失败记录已确认命中:
- 本人行关联字段错误
- 亲属缺少关联本人
- 姓名为空
- 人员子类型为空
- 证件号非法
- 文件内本人重复
- 关联本人不存在
- 文件内亲属重复
- 库内本人重复
- 库内亲属重复
### 中介实体关联关系导入
- 第一轮导入结果:总数 `11`,成功 `3`,失败 `8`
- 第二轮导入结果:总数 `1`,成功 `0`,失败 `1`
- 成功数据已在页面列表可见:
- `成都市资产企业 / 自动化中介本人A / 董事`
- `上海市资产企业 / 自动化中介本人A / 监事`
- `杭州市不动产合伙企业 / 自动化中介本人A / 法人`
- 页面失败记录已确认命中:
- 中介本人为空
- 中介本人证件号非法
- 中介本人不存在
- 统一社会信用代码为空
- 统一社会信用代码不存在
- 关联人职务超长
- 备注超长
- 文件内关系重复
- 库内关系重复
## 影响范围
- 页面:`ruoyi-ui/src/views/ccdiIntermediary/`
- 后端接口:
- `/ccdi/intermediary/importPersonTemplate`
- `/ccdi/intermediary/importPersonData`
- `/ccdi/intermediary/importPersonStatus/{taskId}`
- `/ccdi/intermediary/importPersonFailures/{taskId}`
- `/ccdi/intermediary/importEnterpriseRelationTemplate`
- `/ccdi/intermediary/importEnterpriseRelationData`
- `/ccdi/intermediary/importEnterpriseRelationStatus/{taskId}`
- `/ccdi/intermediary/importEnterpriseRelationFailures/{taskId}`
## 说明
- `docs/tests/records/2026-04-21-intermediary-import-browser-test-record.md` 也已生成更完整测试记录,但该目录受当前仓库 `.gitignore` 规则影响,不进入版本管理。
- 测试结束后,已关闭本次启动的前端开发进程和 Playwright 浏览器;后端沿用原有 `62318` 进程,未做重启或停止。

View File

@@ -0,0 +1,19 @@
# 中介导入文案调整实施记录
## 基本信息
- 日期2026-04-21
- 范围:中介库前端导入入口文案调整
## 修改内容
- 将页面主按钮文案从“导入中介信息”改为“导入中介和亲属信息”。
- 将失败记录入口和失败记录弹窗标题同步改为“中介和亲属信息”表述。
- 将导入弹窗下载模板名称同步改为“中介和亲属信息导入模板”。
- 同步更新前端静态测试断言,确保页面文案与测试基线一致。
## 验证结果
- 已执行:
`source ~/.nvm/nvm.sh && cd ruoyi-ui && nvm use 14.21.3 >/dev/null && node tests/unit/intermediary-import-toolbar.test.js && node tests/unit/intermediary-import-dialog.test.js && node tests/unit/intermediary-import-state.test.js && node tests/unit/intermediary-person-edit-ui.test.js`
- 结果PASS

View File

@@ -0,0 +1,41 @@
# Redis 断连自动重连修复实施记录
## 1. 本次修改内容
-`ruoyi-framework` 的 Redis 配置中新增 Lettuce 连接工厂后处理器。
- 对 Spring Boot 自动装配的 `LettuceConnectionFactory` 统一开启 `validateConnection`
- 新增回归测试,校验连接工厂初始化时已开启连接校验。
-`ruoyi-framework` 补充测试依赖。
## 2. 修改原因
后端 Redis 连接在发生断连后,存在持续复用失效连接的风险,导致 Redis 恢复后应用侧仍无法正常访问缓存。此次修复通过在连接工厂层开启连接校验,缩短恢复路径,避免业务代码层面持续拿到不可用连接。
## 3. 实际变更文件
- `ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java`
- `ruoyi-framework/src/test/java/com/ruoyi/framework/config/RedisConfigTest.java`
- `ruoyi-framework/pom.xml`
## 4. 验证结果
已执行:
```bash
mvn -pl ruoyi-framework -am test -Dtest=RedisConfigTest -Dsurefire.failIfNoSpecifiedTests=false
```
执行结果:
- `BUILD SUCCESS`
- `RedisConfigTest` 通过
## 5. 影响范围
- 后端 Redis 连接恢复行为
- 所有依赖 `RedisTemplate``RedisCache` 的缓存、登录态、验证码、限流等功能
## 6. 备注
- 本次未改动 Redis 地址、密码、库索引、连接池大小等运行参数。
- 本次未引入新的 Redis 客户端,仍保持现有 Spring Data Redis + Lettuce 方案。

View File

@@ -59,6 +59,13 @@
<artifactId>ruoyi-system</artifactId> <artifactId>ruoyi-system</artifactId>
</dependency> </dependency>
<!-- 测试依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies> </dependencies>
</project> </project>

View File

@@ -2,9 +2,11 @@ package com.ruoyi.framework.config;
import org.springframework.cache.annotation.CachingConfigurerSupport; import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching; import org.springframework.cache.annotation.EnableCaching;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.script.DefaultRedisScript; import org.springframework.data.redis.core.script.DefaultRedisScript;
import org.springframework.data.redis.serializer.StringRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer;
@@ -19,6 +21,23 @@ import org.springframework.data.redis.serializer.StringRedisSerializer;
@EnableCaching @EnableCaching
public class RedisConfig extends CachingConfigurerSupport public class RedisConfig extends CachingConfigurerSupport
{ {
@Bean
public static BeanPostProcessor lettuceConnectionFactoryBeanPostProcessor()
{
return new BeanPostProcessor()
{
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName)
{
if (bean instanceof LettuceConnectionFactory lettuceConnectionFactory)
{
lettuceConnectionFactory.setValidateConnection(true);
}
return bean;
}
};
}
@Bean @Bean
@SuppressWarnings(value = { "unchecked", "rawtypes" }) @SuppressWarnings(value = { "unchecked", "rawtypes" })
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory) public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory)

View File

@@ -137,7 +137,7 @@ export default {
return { return {
uploadPath: "/ccdi/intermediary/importPersonData", uploadPath: "/ccdi/intermediary/importPersonData",
templatePath: "ccdi/intermediary/importPersonTemplate", templatePath: "ccdi/intermediary/importPersonTemplate",
templateName: "中介信息导入模板", templateName: "中介和亲属信息导入模板",
statusApi: getPersonImportStatus, statusApi: getPersonImportStatus,
tips: [ tips: [
"personSubType 为字典下拉;", "personSubType 为字典下拉;",

View File

@@ -25,7 +25,7 @@
size="mini" size="mini"
@click="handleOpenPersonImport" @click="handleOpenPersonImport"
v-hasPermi="['ccdi:intermediary:import']" v-hasPermi="['ccdi:intermediary:import']"
>导入中介信息</el-button> >导入中介和亲属信息</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
@@ -44,7 +44,7 @@
icon="el-icon-warning" icon="el-icon-warning"
size="mini" size="mini"
@click="viewPersonImportFailures" @click="viewPersonImportFailures"
>查看中介信息导入失败记录</el-button> >查看中介和亲属信息导入失败记录</el-button>
</el-col> </el-col>
<el-col :span="1.5" v-if="enterpriseRelationImportTask && enterpriseRelationImportTask.failureCount > 0"> <el-col :span="1.5" v-if="enterpriseRelationImportTask && enterpriseRelationImportTask.failureCount > 0">
<el-button <el-button
@@ -131,7 +131,7 @@
/> />
<el-dialog <el-dialog
title="中介信息导入失败记录" title="中介和亲属信息导入失败记录"
:visible.sync="personFailureDialogVisible" :visible.sync="personFailureDialogVisible"
width="1200px" width="1200px"
append-to-body append-to-body
@@ -413,7 +413,7 @@ export default {
}, },
handleOpenPersonImport() { handleOpenPersonImport() {
this.importScene = PERSON_SCENE; this.importScene = PERSON_SCENE;
this.importDialogTitle = "导入中介信息"; this.importDialogTitle = "导入中介和亲属信息";
this.importDialogVisible = true; this.importDialogVisible = true;
}, },
handleOpenEnterpriseRelationImport() { handleOpenEnterpriseRelationImport() {

View File

@@ -9,9 +9,9 @@ const pagePath = path.resolve(
const source = fs.readFileSync(pagePath, "utf8"); const source = fs.readFileSync(pagePath, "utf8");
[ [
"导入中介信息", "导入中介和亲属信息",
"导入中介实体关联关系", "导入中介实体关联关系",
"查看中介信息导入失败记录", "查看中介和亲属信息导入失败记录",
"查看中介实体关联关系导入失败记录", "查看中介实体关联关系导入失败记录",
"personImportTask", "personImportTask",
"enterpriseRelationImportTask" "enterpriseRelationImportTask"