# XQ-20260414-001 开发文档 ## 任务概述 **PMS待办编号**: XQ-20260414-001 **来源**: 内蒙古市场监督管理局信用监管系统改造 **功能点**: 内蒙信用监管-营业执照作废公告进行公示 **截止日期**: 2026-04-16 ## 需求分析 ### 1. 功能开发 **需求描述**: 强制注销审批成功后,将营业执照作废声明数据插入到 `E_LICENSE_NULLIFY_REG` 表 **实现方案**: - `E_LICENSE_NULLIFY_REG` 是视图,底层表为 `XR_LICCAN_REC` - 修改 `RevokeServiceImpl.toForcedLogoutEnter()` 方法 - 在强制注销公告生成完成后,遍历 `ForceLogoutNoticeDetail` 列表 - 为每个未剔除的企业创建 `XrLiccanRec` 记录 ### 2. Bug修复 **问题描述**: 营业执照作废记录点击后数据库读写异常(测试账号:xudy) **可能原因分析**: - 待排查,需联系测试人员提供更详细的错误日志 **修复方案**: - 待定,需进一步定位问题 ## 代码修改 ### 修改文件 `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); } ``` ## 数据映射关系 | XrLiccanRec 字段 | 数据来源 | 说明 | |-----------------|---------|------| | recId | UUID.randomUUID().toString() | 主键 | | pripId | detail.getPripid() | 主体标识 | | entName | detail.getEntName() | 企业名称 | | uniscId | detail.getUniscid() | 统一社会信用代码 | | regno | detail.getRegNo() | 注册号 | | regOrg | detail.getRegOrg() | 登记机关 | | regOrgCn | detail.getRegOrgCn() | 登记机关中文名 | | regType | "FORCE_LOGOUT" | 业务类型-强制注销 | | liccanReason | "1" | 作废原因-无法缴回 | | isoricop | "1" | 正副本-正副本 | | liccanSta | "营业执照因强制注销公告作废" | 作废声明内容 | | liccanDate | LocalDate.now() | 作废声明日期 | ## 底层表说明 ### 视图 E_LICENSE_NULLIFY_REG ```sql 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. 验证 `XR_LICCAN_REC` 表中是否生成了对应的作废声明记录 4. 验证记录字段值是否正确 ### 回归测试 1. 原有强制注销流程是否正常 2. 营业执照作废声明查询功能是否正常 ## 风险评估 - **风险等级**: 低 - **影响范围**: 仅在强制注销审批通过后新增数据写入,不影响原有业务流程 - **回滚方案**: 回退代码即可 ## Git提交信息 ``` XQ-20260414-001: 修正为插入XR_LICCAN_REC表 【修正内容】 - E_LICENSE_NULLIFY_REG是视图,原始表为XR_LICCAN_REC - 使用已有的XrLiccanRec实体类 - 修改RevokeServiceImpl.toForcedLogoutEnter()方法 - 强制注销审批通过后,向XR_LICCAN_REC表插入营业执照作废声明数据 ``` ## 开发记录 - 创建分支: XQ-20260414-001 - 开始日期: 2026-04-14 - 第一次修正: 插入了错误的表 LICENSE_CANCELLATION_DECLARE - 第二次修正: 改为插入正确的视图对应的原始表 XR_LICCAN_REC ## 后续工作 1. Bug修复需要更多错误日志信息才能定位 2. 需要在测试环境验证功能是否正常