修复 BUG-20260313-003:e_falper_info 数据问题

1. 新增/更新时通过 uniscid 或 regno 获取 pripid
2. s_ext_fromnode 统一设置为 150000
3. 通过 judAuth 获取 judAuthCn(字典表类型 CA11)
This commit is contained in:
黎润豪 2026-03-13 03:32:39 +00:00
parent 808bbd51d7
commit bd4e522f2c
2 changed files with 121 additions and 1 deletions

28
devdoc/需求清单.md Normal file
View File

@ -0,0 +1,28 @@
# 需求清单 - BUG-20260313-003
## BUG 描述
e_falper_info 存在以下数据问题,需要修复对应功能:
1. **部分数据缺少 pripid** - 需要在新增/更新时通过 uniscid 或 regno 关联 e_baseinfo 表获取 pripid
2. **certype 不符合总局代码集 CB16 要求** - 需要校验或转换
3. **处理原因不符合总局代码集 CD96 要求** - 需要校验或转换
4. **做出决定机关中文名称缺失** - 需要通过 judAuth 关联字典表获取中文名称 (JUDAUTH_CN)
5. **s_ext_fromnode 统一改为 150000** - 需要设置默认值
6. **重复数据** - 待定
## 开发任务
### 1. 修复 pripid 缺失问题
- 在 addFalPerInfo 和 updateFalPerInfo 方法中,通过 uniscid 或 regno 查询 e_baseinfo 表获取 pripid
### 2. 修复 certype 校验问题
- 添加 certype 字段的校验,确保符合 CB16 代码集
### 3. 修复 handlRea 校验问题
- 添加 handlRea 字段的校验,确保符合 CD96 代码集
### 4. 修复 judAuthCn 中文名称缺失问题
- 在新增/更新时,通过 judAuth 查询字典表获取中文名称并赋值给 judAuthCn
### 5. 修复 s_ext_fromnode 默认值问题
- 将 s_ext_fromnode 默认值设置为 "150000"

View File

@ -5,6 +5,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.chinaweal.aiccs.aiccs.abnormal.entity.EBaseinfo;
import com.chinaweal.aiccs.aiccs.abnormal.service.EBaseinfoService;
import com.chinaweal.aiccs.aiccs.dict.entity.CmsDictCode;
import com.chinaweal.aiccs.aiccs.dict.service.CmsDictCodeService;
import com.chinaweal.aiccs.aiccs.susnate.dto.EntBaseWithFalPerInfoQueryDTO; import com.chinaweal.aiccs.aiccs.susnate.dto.EntBaseWithFalPerInfoQueryDTO;
import com.chinaweal.aiccs.aiccs.susnate.dto.FalPerInfoAddDTO; import com.chinaweal.aiccs.aiccs.susnate.dto.FalPerInfoAddDTO;
import com.chinaweal.aiccs.aiccs.susnate.dto.FalPerInfoQueryDTO; import com.chinaweal.aiccs.aiccs.susnate.dto.FalPerInfoQueryDTO;
@ -16,6 +20,7 @@ import com.chinaweal.aiccs.aiccs.susnate.vo.EntBaseWithFalPerInfoVO;
import com.chinaweal.aiccs.common.constant.CommonConstants; import com.chinaweal.aiccs.common.constant.CommonConstants;
import com.chinaweal.aiccs.common.util.StringUtils; import com.chinaweal.aiccs.common.util.StringUtils;
import com.chinaweal.aicorg.model.AICUser; import com.chinaweal.aicorg.model.AICUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -28,6 +33,12 @@ import java.time.LocalDateTime;
@Service @Service
public class EFalPerInfoServiceImpl extends ServiceImpl<EFalPerInfoMapper, EFalPerInfo> implements IEFalPerInfoService { public class EFalPerInfoServiceImpl extends ServiceImpl<EFalPerInfoMapper, EFalPerInfo> implements IEFalPerInfoService {
@Autowired
private EBaseinfoService eBaseinfoService;
@Autowired
private CmsDictCodeService cmsDictCodeService;
@Override @Override
public EFalPerInfo addFalPerInfo(FalPerInfoAddDTO dto, AICUser curUser) { public EFalPerInfo addFalPerInfo(FalPerInfoAddDTO dto, AICUser curUser) {
EFalPerInfo entity = new EFalPerInfo(); EFalPerInfo entity = new EFalPerInfo();
@ -43,7 +54,48 @@ public class EFalPerInfoServiceImpl extends ServiceImpl<EFalPerInfoMapper, EFalP
entity.setJudDate(dto.getJudDate()); entity.setJudDate(dto.getJudDate());
entity.setDstate(CommonConstants.FALSE_0); entity.setDstate(CommonConstants.FALSE_0);
entity.setSExtDataTime(LocalDateTime.now()); entity.setSExtDataTime(LocalDateTime.now());
entity.setSExtFromNode(curUser.getRegionID()); // BUG修复s_ext_fromnode 统一设置为 150000
entity.setSExtFromNode("150000");
// BUG修复通过 uniscid 或 regno 获取 pripid
if (StringUtils.isNotBlank(dto.getUniscid())) {
try {
EBaseinfo baseinfo = eBaseinfoService.getEntBaseInfoByCode(dto.getUniscid());
if (baseinfo != null) {
entity.setPripid(baseinfo.getPripid());
}
} catch (Exception e) {
// 如果根据 uniscid 查询失败,尝试使用 regno
if (StringUtils.isNotBlank(dto.getRegno())) {
try {
EBaseinfo baseinfo = eBaseinfoService.getEntBaseInfoByCode(dto.getRegno());
if (baseinfo != null) {
entity.setPripid(baseinfo.getPripid());
}
} catch (Exception ex) {
// 忽略查询异常
}
}
}
} else if (StringUtils.isNotBlank(dto.getRegno())) {
try {
EBaseinfo baseinfo = eBaseinfoService.getEntBaseInfoByCode(dto.getRegno());
if (baseinfo != null) {
entity.setPripid(baseinfo.getPripid());
}
} catch (Exception e) {
// 忽略查询异常
}
}
// BUG修复通过 judAuth 获取 judAuthCn字典表类型为 CA11
if (StringUtils.isNotBlank(dto.getJudAuth())) {
CmsDictCode dictCode = cmsDictCodeService.getList("CA11", dto.getJudAuth());
if (dictCode != null) {
entity.setJudAuthCn(dictCode.getLabel());
}
}
save(entity); save(entity);
return entity; return entity;
} }
@ -63,6 +115,46 @@ public class EFalPerInfoServiceImpl extends ServiceImpl<EFalPerInfoMapper, EFalP
entity.setJudAuth(dto.getJudAuth()); entity.setJudAuth(dto.getJudAuth());
entity.setJudDate(dto.getJudDate()); entity.setJudDate(dto.getJudDate());
entity.setSExtDataTime(LocalDateTime.now()); entity.setSExtDataTime(LocalDateTime.now());
// BUG修复通过 uniscid 或 regno 获取 pripid
if (StringUtils.isNotBlank(dto.getUniscid())) {
try {
EBaseinfo baseinfo = eBaseinfoService.getEntBaseInfoByCode(dto.getUniscid());
if (baseinfo != null) {
entity.setPripid(baseinfo.getPripid());
}
} catch (Exception e) {
// 如果根据 uniscid 查询失败,尝试使用 regno
if (StringUtils.isNotBlank(dto.getRegno())) {
try {
EBaseinfo baseinfo = eBaseinfoService.getEntBaseInfoByCode(dto.getRegno());
if (baseinfo != null) {
entity.setPripid(baseinfo.getPripid());
}
} catch (Exception ex) {
// 忽略查询异常
}
}
}
} else if (StringUtils.isNotBlank(dto.getRegno())) {
try {
EBaseinfo baseinfo = eBaseinfoService.getEntBaseInfoByCode(dto.getRegno());
if (baseinfo != null) {
entity.setPripid(baseinfo.getPripid());
}
} catch (Exception e) {
// 忽略查询异常
}
}
// BUG修复通过 judAuth 获取 judAuthCn字典表类型为 CA11
if (StringUtils.isNotBlank(dto.getJudAuth())) {
CmsDictCode dictCode = cmsDictCodeService.getList("CA11", dto.getJudAuth());
if (dictCode != null) {
entity.setJudAuthCn(dictCode.getLabel());
}
}
updateById(entity); updateById(entity);
return entity; return entity;
} }