aiccs-api/devdoc/XQ-20260331-005_开发思路与改动.md

118 lines
3.9 KiB
Markdown
Raw Permalink Normal View History

# XQ-20260331-005 开发思路与改动
## 一、技术方案
### 1.1 定时任务设计
**类名**: `CancelEntRemoveSchedule`
**位置**: `com.chinaweal.aiccs.schedule.CancelEntRemoveSchedule`
**执行频率**: 每天凌晨2点执行可配置
### 1.2 处理流程
```
1. 查询当天注销的市场主体
└─ 表: SJZX_SHARE.KSQY_E_BASEINFO
└─ 条件: REGSTATE = '注销' AND 注销日期 = 当天日期
2. 对每个注销主体处理:
├─ 2.1 经营异常名录自动移出
│ ├─ 表: SJZX_SHARE.KSQY_AO_OPA_DETAIL
│ ├─ 条件: PRIPID = 当前主体 AND REMDATE IS NULL
│ └─ 操作: 更新 REMDATE, REMEXCPRES, REMEXCPRES_CN, REDECORG, REDECORG_CN
├─ 2.2 严重违法记录自动移出
│ ├─ 表: SJZX_SHARE.KSQY_E_LI_ILLDISDETAIL
│ ├─ 条件: PRIPID = 当前主体 AND REMDATE IS NULL
│ └─ 操作: 更新 REMDATE, REMEXCPRES, REMEXCPRES_CN, RECORG, RECORG_CN, REDOCNUM
└─ 2.3 行政处罚信用修复记录插入
├─ 表: CRGS.CASE_CRE_INFORMATION
├─ 条件: PRIPID = 当前主体 AND CASEID 存在
└─ 操作: 插入新记录 (CASECREID, PRIPID, ENTNAME, UNISCID, CASEID, REPAIRDATE, REPAUTH, REPAUTH_CN, REPDATE)
```
### 1.3 涉及的表和字段
#### 企业基本信息表 (KSQY_E_BASEINFO)
- **PRIPID**: 主体身份代码
- **ENTNAME**: 企业名称
- **UNISCID**: 统一社会信用代码
- **REGSTATE**: 登记状态
- **REGDATE**: 核准日期(注销日期)
#### 经营异常名录详情表 (KSQY_AO_OPA_DETAIL)
- **BUSEXCLIST**: 经营异常名录ID
- **PRIPID**: 主体身份代码
- **ISMOVE**: 是否移出
- **REMDATE**: 移出日期
- **REMEXCPRES**: 移出原因
- **REMEXCPRES_CN**: 移出原因中文
- **REDECORG**: 移出决定机关
- **REDECORG_CN**: 移出决定机关中文
#### 严重违法详情表 (KSQY_E_LI_ILLDISDETAIL)
- **ILLID**: 严重违法失信ID
- **PRIPID**: 主体身份代码
- **REMDATE**: 移出日期
- **REMEXCPRES**: 移出事由
- **REMEXCPRES_CN**: 移出事由中文
- **RECORG**: 移出决定机关
- **RECORG_CN**: 移出决定机关中文
- **REDOCNUM**: 移出文号
#### 行政处罚信用修复信息表 (CRGS.CASE_CRE_INFORMATION)
- **CASECREID**: 行政处罚修复ID
- **PRIPID**: 主体身份代码
- **ENTNAME**: 企业名称
- **UNISCID**: 统一社会信用代码
- **CASEID**: 行政处罚ID
- **REPAIRDATE**: 申请修复日期
- **REPAUTH**: 修复机关代码
- **REPAUTH_CN**: 修复机关名称
- **REPDATE**: 修复日期
- **REPAIRNO**: 修复文号
## 二、实现细节
### 2.1 定时任务配置
`application-dev.yml` 中添加:
```yaml
scheduling:
enable: true
cron:
cancelEntRemove: '0 0 2 * * ?' # 每天凌晨2点执行
```
### 2.2 核心逻辑
1. **查询注销主体**: 使用 MyBatis Plus 的 LambdaQueryWrapper 构建查询条件
2. **批量处理**: 对每个注销主体,先批量处理所有移出操作,再处理行政处罚插入
3. **事务管理**: 使用 @Transactional 确保数据一致性
4. **日志记录**: 详细记录处理过程和结果
### 2.3 移出原因
- **移出原因码值**: `08` (其他)
- **移出原因中文**: `主体注销,自动移出`
- **移出机关**: 使用原列入机关或默认机关代码
## 三、代码改动
### 3.1 新增文件
1. `src/main/java/com/chinaweal/aiccs/schedule/CancelEntRemoveSchedule.java` - 定时任务类
2. `src/main/java/com/chinaweal/aiccs/aicbizqy/mapper/datamove/AoOpaDetailDataMoveMapper.java` - 需添加更新方法
3. `src/main/java/com/chinaweal/aiccs/aicbizqy/mapper/datamove/ELiIlldisdetailDataMoveMapper.java` - 需添加更新方法
### 3.2 修改文件
1. `src/main/resources/application-dev.yml` - 添加定时任务配置
## 四、异常处理
- 查询异常: 记录日志,继续处理其他主体
- 更新异常: 记录错误日志,继续处理其他记录
- 插入异常: 记录错误日志,继续处理其他记录