diff --git a/devdoc/XQ-20260414-001.md b/devdoc/XQ-20260414-001.md index 32dbb39..2f6c397 100644 --- a/devdoc/XQ-20260414-001.md +++ b/devdoc/XQ-20260414-001.md @@ -11,117 +11,114 @@ ### 1. 功能开发 **需求描述**: 强制注销审批成功后,将营业执照作废声明数据插入到 `E_LICENSE_NULLIFY_REG` 表 -**业务背景**: -- 内蒙古市场监督管理局需要对强制注销的企业进行营业执照作废公告公示 -- 当强制注销审批流程完成后,需要自动生成营业执照作废公告记录到 E_LICENSE_NULLIFY_REG 表 - **实现方案**: +- `E_LICENSE_NULLIFY_REG` 是视图,底层表为 `XR_LICCAN_REC` - 修改 `RevokeServiceImpl.toForcedLogoutEnter()` 方法 - 在强制注销公告生成完成后,遍历 `ForceLogoutNoticeDetail` 列表 -- 为每个未剔除的企业创建 `LicenseNullifyReg` 记录 +- 为每个未剔除的企业创建 `XrLiccanRec` 记录 ### 2. Bug修复 **问题描述**: 营业执照作废记录点击后数据库读写异常(测试账号:xudy) **可能原因分析**: - 待排查,需联系测试人员提供更详细的错误日志 -- 需要在测试环境复现问题并获取完整堆栈信息 **修复方案**: - 待定,需进一步定位问题 -## 代码修改清单 - -### 新增文件 -1. **Entity**: `src/main/java/com/chinaweal/aiccs/aiccs/forcedCancellation/entity/LicenseNullifyReg.java` - - 营业执照作废公告公示表实体类 - - 表名:`AICCS.E_LICENSE_NULLIFY_REG` - -2. **Mapper**: `src/main/java/com/chinaweal/aiccs/aiccs/forcedCancellation/mapper/LicenseNullifyRegMapper.java` - - 继承 BaseMapper,提供基础 CRUD 操作 - -3. **Mapper XML**: `src/main/resources/mybatis/mapper/aiccs/forcedCancellation/LicenseNullifyRegMapper.xml` - - MyBatis Mapper 配置,包含分页查询和各类查询方法 - -4. **Service**: `src/main/java/com/chinaweal/aiccs/aiccs/forcedCancellation/service/LicenseNullifyRegService.java` - - 服务接口 - -5. **ServiceImpl**: `src/main/java/com/chinaweal/aiccs/aiccs/forcedCancellation/service/impl/LicenseNullifyRegServiceImpl.java` - - 服务实现类 +## 代码修改 ### 修改文件 -1. **RevokeServiceImpl.java** - - 添加 `LicenseNullifyReg` 导入 - - 添加 `LicenseNullifyRegService` 导入 - - 注入 `LicenseNullifyRegService` - - 在 `toForcedLogoutEnter()` 方法末尾添加插入逻辑 +`src/main/java/com/chinaweal/aiccs/aiccs/revoke/service/impl/RevokeServiceImpl.java` + +### 修改内容 + +#### 1. 新增导入 +```java +import com.chinaweal.aiccs.aiccs.force.entity.XrLiccanRec; +import com.chinaweal.aiccs.aiccs.force.service.IXrLiccanRecService; +``` + +#### 2. 新增服务注入 +```java +@Autowired +private IXrLiccanRecService xrLiccanRecService; +``` + +#### 3. 在 toForcedLogoutEnter 方法末尾添加逻辑 +在 `forceLogoutNoticeService.deactivationNotice(...)` 调用之后添加: + +```java +// 生成营业执照作废声明数据 +for (ForceLogoutNoticeDetail detail : forceLogoutNoticeDetailList) { + // 跳过已剔除的企业 + if ("1".equals(detail.getIsRemove())) { + continue; + } + + XrLiccanRec liccanRec = new XrLiccanRec(); + liccanRec.setRecId(UUID.randomUUID().toString()); + liccanRec.setPripId(detail.getPripid()); + liccanRec.setEntName(detail.getEntName()); + liccanRec.setUniscId(detail.getUniscid()); + liccanRec.setRegno(detail.getRegNo()); + liccanRec.setRegOrg(detail.getRegOrg()); + liccanRec.setRegOrgCn(detail.getRegOrgCn()); + liccanRec.setRegType("FORCE_LOGOUT"); + liccanRec.setLiccanReason("1"); + liccanRec.setIsoricop("1"); + liccanRec.setLiccanSta("营业执照因强制注销公告作废"); + liccanRec.setLiccanDate(LocalDate.now()); + + xrLiccanRecService.save(liccanRec); +} +``` ## 数据映射关系 -| LicenseNullifyReg 字段 | 数据来源 | 说明 | -|------------------------|---------|------| +| XrLiccanRec 字段 | 数据来源 | 说明 | +|-----------------|---------|------| | recId | UUID.randomUUID().toString() | 主键 | -| bizseqId | detail.getBizseqId() | 业务ID | -| pripid | detail.getPripid() | 主体标识 | +| pripId | detail.getPripid() | 主体标识 | | entName | detail.getEntName() | 企业名称 | -| uniscid | detail.getUniscid() | 统一社会信用代码 | -| regNo | detail.getRegNo() | 注册号 | +| uniscId | detail.getUniscid() | 统一社会信用代码 | +| regno | detail.getRegNo() | 注册号 | | regOrg | detail.getRegOrg() | 登记机关 | | regOrgCn | detail.getRegOrgCn() | 登记机关中文名 | -| regType | "FORCE_LOGOUT" | 登记业务类型-强制注销 | -| licCanReason | "1" | 作废原因-无法缴回(默认) | -| isoriCop | "1" | 正副本标识-正副本(默认) | -| licCanSta | "营业执照因强制注销公告作废" | 作废声明内容 | -| licCanDate | LocalDate.now() | 作废声明发布日期 | -| noticeTitle | forceLogoutNotice.getNoticeTitle() | 公告标题 | -| noticeContent | forceLogoutNotice.getNoticeContent() | 公告内容 | -| noticeFrom | forceLogoutNotice.getNoticeFrom() | 公告起始日期 | -| noticeTo | forceLogoutNotice.getNoticeTo() | 公告截止日期 | -| sExtFromnode | detail.getSExtFromnode() | 二级部署标识 | -| sExtDatetime | LocalDateTime.now() | 更新时间 | -| createTime | LocalDateTime.now() | 创建时间 | -| lauptime | LocalDateTime.now() | 更新时间 | +| regType | "FORCE_LOGOUT" | 业务类型-强制注销 | +| liccanReason | "1" | 作废原因-无法缴回 | +| isoricop | "1" | 正副本-正副本 | +| liccanSta | "营业执照因强制注销公告作废" | 作废声明内容 | +| liccanDate | LocalDate.now() | 作废声明日期 | -## 数据库建表 SQL(参考) +## 底层表说明 +### 视图 E_LICENSE_NULLIFY_REG ```sql -CREATE TABLE AICCS.E_LICENSE_NULLIFY_REG ( - RECID VARCHAR(64) PRIMARY KEY, - BIZSEQID VARCHAR(64), - PRIPID VARCHAR(64), - ENTNAME VARCHAR(256), - UNISCID VARCHAR(32), - REGNO VARCHAR(32), - REGORG VARCHAR(12), - REGORG_CN VARCHAR(128), - REGTYPE VARCHAR(32), - LICCANREASON VARCHAR(8), - ISORICOP VARCHAR(8), - LICCANSTA VARCHAR(1024), - LICCANDATE DATE, - LICCOPYNO VARCHAR(64), - NOTICETITLE VARCHAR(512), - NOTICECONTENT TEXT, - NOTICEFROM DATE, - NOTICETO DATE, - S_EXT_FROMNODE VARCHAR(12), - S_EXT_DATATIME TIMESTAMP, - CREATE_TIME TIMESTAMP, - LAUPTIME TIMESTAMP -); +CREATE OR REPLACE VIEW AICCS.E_LICENSE_NULLIFY_REG AS +SELECT + T1.RECID, T1.PRIPID, T1.ENTNAME, T1.UNISC_ID, T1.REG_ORG, T1.REG_ORG_CN, + T1.REG_TYPE, T1.LICAN_REASON, T1.ISORICOP, T1.LICAN_STA, T1.LICAN_DATE, + T1.LICCOPY_NO, T1.S_EXT_FROMNODE, T1.S_EXT_DATATIME +FROM AICCS.XR_LICCAN_REC T1; ``` +### 原始表 XR_LICCAN_REC +表名:`AICCS.XR_LICCAN_REC` + +对应实体类:`com.chinaweal.aiccs.aiccs.force.entity.XrLiccanRec` + ## 测试要点 ### 功能测试 1. 创建强制注销业务,添加企业名单 2. 完成全部审批流程,直到强制注销审批通过 -3. 验证 `E_LICENSE_NULLIFY_REG` 表中是否生成了对应的作废公告记录 +3. 验证 `XR_LICCAN_REC` 表中是否生成了对应的作废声明记录 4. 验证记录字段值是否正确 ### 回归测试 1. 原有强制注销流程是否正常 -2. 营业执照作废公告查询功能是否正常 +2. 营业执照作废声明查询功能是否正常 ## 风险评估 - **风险等级**: 低 @@ -130,25 +127,21 @@ CREATE TABLE AICCS.E_LICENSE_NULLIFY_REG ( ## Git提交信息 ``` -XQ-20260414-001: 强制注销审批成功后生成营业执照作废公告数据到E_LICENSE_NULLIFY_REG表 +XQ-20260414-001: 修正为插入XR_LICCAN_REC表 -- 新增 E_LICENSE_NULLIFY_REG 表对应的完整后端代码 - - Entity: LicenseNullifyReg.java - - Mapper: LicenseNullifyRegMapper.java - - Mapper XML: LicenseNullifyRegMapper.xml - - Service: LicenseNullifyRegService.java - - ServiceImpl: LicenseNullifyRegServiceImpl.java -- 修改 RevokeServiceImpl.toForcedLogoutEnter() 方法 -- 强制注销审批通过后,遍历 ForceLogoutNoticeDetail 列表 -- 为每个未剔除的企业创建 LicenseNullifyReg 记录 +【修正内容】 +- E_LICENSE_NULLIFY_REG是视图,原始表为XR_LICCAN_REC +- 使用已有的XrLiccanRec实体类 +- 修改RevokeServiceImpl.toForcedLogoutEnter()方法 +- 强制注销审批通过后,向XR_LICCAN_REC表插入营业执照作废声明数据 ``` ## 开发记录 - 创建分支: XQ-20260414-001 - 开始日期: 2026-04-14 -- 修正日期: 2026-04-14(修正表名错误) +- 第一次修正: 插入了错误的表 LICENSE_CANCELLATION_DECLARE +- 第二次修正: 改为插入正确的视图对应的原始表 XR_LICCAN_REC ## 后续工作 1. Bug修复需要更多错误日志信息才能定位 2. 需要在测试环境验证功能是否正常 -3. 需要DBA创建 E_LICENSE_NULLIFY_REG 表