# XQ-20260327-008 开发思路与改动

## 一、开发思路

基于原有的行政处罚修复功能（TBizRemPunishmentController），新建一套外省行政处罚修复接口。主要区别在于：
1. 数据来源不同：本地表 → 跨省表QG_CASE_PUB_NBASEINFO
2. 主体信息查询不同：从EBaseinfo查询 → 从QG_CASE_PUB_NBASEINFO直接获取
3. 办结后处理不同：插入CASE_CRE_INFORMATION → 修改QG_CASE_PUB_NBASEINFO + 插入CR_E_CASE

## 二、代码改动清单

### 1. 新建实体类

#### 1.1 QG_CASE_PUB_NBASEINFO 实体
- **路径**: `src/main/java/com/chinaweal/aiccs/aiccs/punishment/entity/QgCasePubNbaseinfo.java`
- **说明**: 跨省行政处罚基本信息实体，对应表crgs.QG_CASE_PUB_NBASEINFO
- **主要字段**:
  - `caseid`: 案件ID
  - `entname`: 企业名称
  - `uniscid`: 统一社会信用代码
  - `regno`: 注册号
  - `penDecNo`: 处罚决定书文号
  - `penAuthCn`: 处罚机关中文
  - `opflag`: 操作标志（修复时改为D）
  - `pubDeadline`: 公示截止日期
  - `sExtDatetime`: 时间戳

### 2. 新建Mapper

#### 2.1 QgCasePubNbaseinfoMapper
- **路径**: `src/main/java/com/chinaweal/aiccs/aiccs/punishment/mapper/QgCasePubNbaseinfoMapper.java`
- **接口**: `IQgCasePubNbaseinfoService`

#### 2.2 Mapper XML
- **路径**: `src/main/resources/mybatis/mapper/aiccs/punishment/QgCasePubNbaseinfoMapper.xml`
- **说明**: 包含分页查询、按ID查询、更新修复状态方法

### 3. 新建Service

#### 3.1 IQgCasePubNbaseinfoService
- **路径**: `src/main/java/com/chinaweal/aiccs/aiccs/punishment/service/IQgCasePubNbaseinfoService.java`
- **方法**:
  - `searchByPage`: 分页查询跨省行政处罚信息
  - `findById`: 根据ID查询
  - `updateForRepair`: 更新修复状态（opflag='D', pubdeadline, S_EXT_DATETIME）

#### 3.2 QgCasePubNbaseinfoServiceImpl
- **路径**: `src/main/java/com/chinaweal/aiccs/aiccs/punishment/service/impl/QgCasePubNbaseinfoServiceImpl.java`

### 4. 新建Controller

#### 4.1 TBizRemPunishmentNController（外省行政处罚修复）
- **路径**: `src/main/java/com/chinaweal/aiccs/aiccs/punishment/controller/TBizRemPunishmentNController.java`
- **说明**: 外省行政处罚修复控制器，复用原有界面和流程
- **主要接口**（与原TBizRemPunishmentController对应）:
  - `punishmentList`: 查询外省行政处罚记录（走QG表）
  - `startTask`: 启动待办（主体信息从QG表获取）
  - `submitTask`: 提交待办（办结时修改QG表+插入CR_E_CASE）

### 5. 复用现有类

#### 5.1 复用实体
- `TBizRemPunishment`: 业务表（新增一个业务类型标识区分）
- `CrECase`: 跨省修复案例表（办结时插入）

#### 5.2 复用Service
- `ICrECaseService`: 插入CR_E_CASE表
- `TSTaskListService`: 工作流任务
- `TSAttachmentService`: 附件
- `TswrittemplateService`: 文书模板
- `TbIlcPunInfoQueryService`: 保持接口不变（实际不走这个）

## 三、接口设计

### 3.1 行政处罚记录查询（外省）
```
POST /punishment/tBizRemPunishmentN/punishmentList
```
- 复用原有查询页面
- 数据来源改为 `crgs.QG_CASE_PUB_NBASEINFO`

### 3.2 启动待办（外省）
```
POST /punishment/tBizRemPunishmentN/startTask
```
- 业务表ID: `TBizRemPunishment.id`（业务表共用）
- 主体信息从 `QG_CASE_PUB_NBASEINFO` 获取
- 工作流使用原流程

### 3.3 提交待办（外省）
```
POST /punishment/tBizRemPunishmentN/submitTask
```
- 办结时处理：
  1. 更新 `crgs.QG_CASE_PUB_NBASEINFO`: opflag='D', pubdeadline=审批日期, S_EXT_DATETIME=审批日期
  2. 插入 `AICCS.CR_E_CASE`
  3. **不再**插入 `crgs.CASE_CRE_INFORMATION`

## 四、数据流差异

| 环节 | 原有流程 | 外省流程 |
|------|---------|---------|
| 主体信息获取 | EBaseinfo表 | QG_CASE_PUB_NBASEINFO表 |
| 行政处罚信息 | CASE_PUB_NBASEINFO表 | QG_CASE_PUB_NBASEINFO表 |
| 办结-主体表 | 无操作 | opflag='D' |
| 办结-公示表 | 插入CASE_CRE_INFORMATION | 修改QG表 + 插入CR_E_CASE |

## 五、注意事项

1. 工作流复用原有流程，不需要新建工作流
2. 业务表TBizRemPunishment共用，通过字段区分或新建业务类型
3. 附件、文书模板共用
4. 外省数据没有本地EBaseinfo，所以主体信息直接从QG表获取
