员工亲属实体关联
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
# 员工信息维护双 Sheet 导入后端实施计划
|
||||
|
||||
## 目标
|
||||
- 将员工信息维护导入模板改为 `员工信息` + `员工资产信息` 双 Sheet。
|
||||
- 统一由 `/ccdi/baseStaff/importData` 接收单文件上传,并按有数据的 Sheet 分别调用现有员工导入与员工资产导入方法。
|
||||
- 员工信息导入取消“更新已存在员工”能力,命中现有员工 ID 或身份证号时直接记失败。
|
||||
- 两类失败记录统一补充 `sheetName`、`rowNum`、`errorMessage`,便于直接定位 Excel 中的失败位置。
|
||||
|
||||
## 实施内容
|
||||
- 控制器改造
|
||||
- 修改 `CcdiBaseStaffController#importTemplate`,下载双 Sheet 模板,文件名统一为“员工信息维护导入模板”。
|
||||
- 修改 `CcdiBaseStaffController#importData`,按 Sheet 名分别读取 `CcdiBaseStaffExcel` 与 `CcdiBaseStaffAssetInfoExcel`。
|
||||
- 两个 Sheet 均为空时返回错误;任一 Sheet 有数据时,仅提交对应导入任务。
|
||||
- 返回新的双任务提交结果对象,包含 `staffTaskId`、`assetTaskId`、`message`。
|
||||
- 服务改造
|
||||
- 修改 `ICcdiBaseStaffService`、`CcdiBaseStaffServiceImpl`,移除 `updateSupport` 参数。
|
||||
- 修改 `ICcdiBaseStaffImportService`、`CcdiBaseStaffImportServiceImpl`,移除更新分支与 `insertOrUpdateBatch` 调用。
|
||||
- 员工导入校验统一为:
|
||||
- 员工 ID 已存在:失败
|
||||
- 身份证号已存在:失败
|
||||
- Excel 内重复:失败
|
||||
- 员工资产导入补充重复校验:
|
||||
- 数据库中存在同一 `personId + assetMainType + assetSubType + assetName`:失败
|
||||
- 导入文件中存在同一组合重复:失败
|
||||
- VO 修正
|
||||
- 新增员工双 Sheet 提交结果 VO。
|
||||
- 修正员工导入失败记录 VO 字段名为 `staffId`,与前端表格字段保持一致。
|
||||
- 员工与员工资产失败记录 VO 均增加 `sheetName`、`rowNum`。
|
||||
|
||||
## 验证
|
||||
- `mvn -pl ccdi-info-collection,ruoyi-admin -am -DskipTests compile`
|
||||
- 补充控制器与服务层回归测试,覆盖双 Sheet 分发与“已存在即失败”规则。
|
||||
|
||||
## 影响范围
|
||||
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/controller/`
|
||||
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/service/`
|
||||
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/domain/vo/`
|
||||
@@ -0,0 +1,26 @@
|
||||
# 2026-04-22 招投标导入失败展示增强后端实施计划
|
||||
|
||||
## 1. 目标
|
||||
|
||||
- 为招投标导入失败记录补充失败来源 `Sheet`
|
||||
- 为失败记录补充 Excel 失败行号
|
||||
- 保持现有导入校验逻辑不变,仅增强失败记录元数据
|
||||
|
||||
## 2. 涉及范围
|
||||
|
||||
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/domain/vo/PurchaseTransactionImportFailureVO.java`
|
||||
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/service/impl/CcdiPurchaseTransactionImportServiceImpl.java`
|
||||
|
||||
## 3. 实施步骤
|
||||
|
||||
1. 在失败记录 VO 中新增 `sheetName`、`sheetRowNum` 字段,供前端弹窗直接读取
|
||||
2. 在导入服务中为主信息 Sheet 和供应商明细 Sheet 建立“Excel 数据行号”上下文
|
||||
3. 在主信息校验、供应商校验、主从关系校验、空采购事项 ID 供应商校验等失败分支中,统一写入对应的 `Sheet` 与行号
|
||||
4. 对跨多行触发的失败场景,行号以合并字符串形式返回,便于页面直接展示
|
||||
5. 保留原有失败原因与业务字段,避免影响已有失败记录查询接口
|
||||
|
||||
## 4. 验证方式
|
||||
|
||||
- 执行后端编译,确认新增字段和异常封装无编译错误
|
||||
- 通过真实页面上传失败样本,核对失败记录接口返回 `sheetName / sheetRowNum / errorMessage`
|
||||
- 覆盖至少一个主信息失败样本和一个供应商明细失败样本
|
||||
@@ -0,0 +1,39 @@
|
||||
# 员工亲属关系维护双 Sheet 导入后端实施计划
|
||||
|
||||
## 目标
|
||||
- 将员工亲属关系维护导入模板改为双 Sheet:
|
||||
- `员工亲属关系信息`
|
||||
- `亲属资产信息`
|
||||
- 将导入提交入口统一到 `/ccdi/staffFmyRelation/importData`。
|
||||
- 统一补充失败记录定位字段,支持前端展示 `Sheet / Excel行号 / 失败原因`。
|
||||
|
||||
## 实施内容
|
||||
- Controller 调整
|
||||
- `CcdiStaffFmyRelationController#importTemplate` 改为输出双 Sheet 模板,模板文件名统一为“员工亲属关系维护导入模板”。
|
||||
- `CcdiStaffFmyRelationController#importData` 一次读取两个 Sheet。
|
||||
- 按有数据的 Sheet 分别提交亲属关系导入任务和亲属资产导入任务。
|
||||
- 返回新的提交结果 VO,包含 `relationTaskId`、`assetTaskId` 和提示文案。
|
||||
- VO 调整
|
||||
- `StaffFmyRelationImportFailureVO` 增加 `sheetName`、`rowNum`。
|
||||
- `AssetImportFailureVO` 增加 `sheetName`、`rowNum`。
|
||||
- 新增 `StaffFmyRelationImportSubmitResultVO`。
|
||||
- 导入服务调整
|
||||
- `CcdiStaffFmyRelationImportServiceImpl` 失败记录写入固定 `sheetName=员工亲属关系信息`,并记录 Excel 数据行号。
|
||||
- `CcdiAssetInfoImportServiceImpl` 失败记录写入固定 `sheetName=亲属资产信息`,并记录 Excel 数据行号。
|
||||
- 兼容策略
|
||||
- 保留原 `CcdiAssetInfoController` 的状态查询与失败记录查询接口,前端继续复用原有资产任务轮询与失败记录查看能力。
|
||||
|
||||
## 验证
|
||||
- 后端优先验证:
|
||||
- `CcdiStaffFmyRelationControllerTest`
|
||||
- `CcdiAssetInfoControllerTest`
|
||||
- 编译验证:
|
||||
- `mvn -pl ccdi-info-collection -am -Dmaven.test.skip=true compile`
|
||||
|
||||
## 影响范围
|
||||
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/controller/CcdiStaffFmyRelationController.java`
|
||||
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/service/impl/CcdiStaffFmyRelationImportServiceImpl.java`
|
||||
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/service/impl/CcdiAssetInfoImportServiceImpl.java`
|
||||
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/domain/vo/StaffFmyRelationImportFailureVO.java`
|
||||
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/domain/vo/AssetImportFailureVO.java`
|
||||
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/domain/vo/StaffFmyRelationImportSubmitResultVO.java`
|
||||
@@ -0,0 +1,32 @@
|
||||
# 员工信息导入机构号校验后端实施计划
|
||||
|
||||
## 目标
|
||||
- 在员工信息 Excel 导入链路中校验 `所属部门ID(deptId)` 是否对应有效机构号。
|
||||
- 有效口径统一为 `sys_dept` 中“正常且未删除”的部门,即 `status = '0'` 且 `del_flag = '0'`。
|
||||
- 命中不存在、已停用或已删除的部门时,不入库,直接进入员工导入失败记录。
|
||||
|
||||
## 实施内容
|
||||
- 导入服务改造
|
||||
- 修改 `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/service/impl/CcdiBaseStaffImportServiceImpl.java`。
|
||||
- 在 `validateStaffData` 中于必填校验后增加 `deptId` 有效性校验。
|
||||
- 新增私有方法按 `deptId` 查询部门并校验 `status` 与 `delFlag`。
|
||||
- 校验失败时抛出统一错误文案:`所属部门ID[xxx]不存在或已停用/删除,请检查机构号`。
|
||||
- 部门 Mapper 对齐
|
||||
- 修改 `ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml`。
|
||||
- 为 `selectDeptById` 查询补齐 `d.del_flag` 字段,保证导入服务可同时判断停用与逻辑删除状态。
|
||||
- 单元测试补充
|
||||
- 修改 `ccdi-info-collection/src/test/java/com/ruoyi/info/collection/service/CcdiBaseStaffImportServiceImplTest.java`。
|
||||
- 增加部门存在、停用、删除三类校验测试。
|
||||
- 修改 `ccdi-info-collection/src/test/java/com/ruoyi/info/collection/service/CcdiBaseStaffDualImportServiceTest.java`。
|
||||
- 增加混合导入场景测试,验证合法员工成功入库、非法 `deptId` 写入失败记录且任务状态为 `PARTIAL_SUCCESS`。
|
||||
|
||||
## 验证
|
||||
- 定向单测:
|
||||
- `mvn -pl ccdi-info-collection -am -Dsurefire.failIfNoSpecifiedTests=false -Dtest=CcdiBaseStaffImportServiceImplTest,CcdiBaseStaffDualImportServiceTest test`
|
||||
- 编译校验:
|
||||
- `mvn -pl ccdi-info-collection,ruoyi-admin -am -DskipTests compile`
|
||||
|
||||
## 影响范围
|
||||
- 员工信息导入后端异步校验逻辑
|
||||
- 系统部门主键查询字段映射
|
||||
- 员工导入相关单元测试
|
||||
@@ -0,0 +1,23 @@
|
||||
# 招投标供应商校验后端实施计划
|
||||
|
||||
## 目标
|
||||
- 让招投标信息维护页面的新增、编辑接口仅保留供应商名称和统一信用代码必填校验。
|
||||
- 移除供应商联系人、联系电话、银行账户,以及供应商名称/统一信用代码的内容格式校验,避免页面保存被接口层拦截。
|
||||
|
||||
## 实施内容
|
||||
- 调整 `CcdiPurchaseTransactionSupplierDTO`
|
||||
- 保留 `supplierName` 的 `@NotBlank`。
|
||||
- 为 `supplierUscc` 增加 `@NotBlank` 必填校验。
|
||||
- 移除 `supplierName` 的长度校验。
|
||||
- 移除 `supplierUscc` 的格式校验。
|
||||
- 移除 `contactPerson`、`contactPhone`、`supplierBankAccount` 的内容校验注解。
|
||||
|
||||
## 验证
|
||||
- `mvn -pl ccdi-info-collection -am -DskipTests compile`
|
||||
- `sh bin/restart_java_backend.sh`
|
||||
- 结合真实页面验证:
|
||||
- 新增弹窗提交 `supplierUscc=ABC`、`contactPhone=123` 成功
|
||||
- 编辑弹窗提交 `supplierUscc=XYZ`、`contactPhone=abc123` 成功
|
||||
|
||||
## 产出文件
|
||||
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/domain/dto/CcdiPurchaseTransactionSupplierDTO.java`
|
||||
Reference in New Issue
Block a user