gxzx 服务迁移至 mhzc - 完整执行方案
For agentic workers: REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.
Goal: 将 txw-gxzx 微服务(供需大厅/绿色金融/绿色交易/企业入驻)的全部代码和数据库迁移到 txw-mhzc 服务
Architecture: 代码迁移采用"整体迁移+批量修改包名"的策略,先迁移文件再统一修改import;数据库采用"目标库创建表+数据同步"的方案
Tech Stack: Java/Spring Boot, MyBatis, MySQL/达梦数据库, Maven多模块
一、文件迁移清单(共62个文件)
1.1 Controller层(4个)
| # |
源文件 |
目标路径 |
| 1 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/controller/GxdtController.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/controller/gxzx/GxdtController.java |
| 2 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/controller/LsjrController.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/controller/gxzx/LsjrController.java |
| 3 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/controller/LsjyController.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/controller/gxzx/LsjyController.java |
| 4 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/controller/QyRzController.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/controller/gxzx/QyRzController.java |
1.2 Service接口层(10个)
| # |
源文件 |
目标路径 |
| 5 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/TxwGxzxGxbqbService.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/TxwGxzxGxbqbService.java |
| 6 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/TxwGxzxGxscbService.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/TxwGxzxGxscbService.java |
| 7 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/TxwGxzxGxxxbService.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/TxwGxzxGxxxbService.java |
| 8 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/TxwGxzxQybqbService.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/TxwGxzxQybqbService.java |
| 9 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/TxwGxzxRzsqjlbService.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/TxwGxzxRzsqjlbService.java |
| 10 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/TxwGxzxShqkbService.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/TxwGxzxShqkbService.java |
| 11 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/lsjr/GxzxDkbxsqxxService.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/lsjr/GxzxDkbxsqxxService.java |
| 12 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/lsjr/GxzxLsjrService.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/lsjr/GxzxLsjrService.java |
| 13 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/lsjr/GxzxLsjrcpxxService.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/lsjr/GxzxLsjrcpxxService.java |
| 14 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/lsjy/GxzxLsjyZcxxService.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/lsjy/GxzxLsjyZcxxService.java |
1.3 Service实现层(10个)
| # |
源文件 |
目标路径 |
| 15 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/impl/TxwGxzxGxbqbServiceImpl.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/impl/TxwGxzxGxbqbServiceImpl.java |
| 16 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/impl/TxwGxzxGxscbServiceImpl.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/impl/TxwGxzxGxscbServiceImpl.java |
| 17 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/impl/TxwGxzxGxxxbServiceImpl.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/impl/TxwGxzxGxxxbServiceImpl.java |
| 18 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/impl/TxwGxzxQybqbServiceImpl.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/impl/TxwGxzxQybqbServiceImpl.java |
| 19 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/impl/TxwGxzxRzsqjlbServiceImpl.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/impl/TxwGxzxRzsqjlbServiceImpl.java |
| 20 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/impl/TxwGxzxShqkbServiceImpl.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/impl/TxwGxzxShqkbServiceImpl.java |
| 21 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/lsjr/impl/GxzxDkbxsqxxServiceImpl.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/lsjr/impl/GxzxDkbxsqxxServiceImpl.java |
| 22 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/lsjr/impl/GxzxLsjrcpxxServiceImpl.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/lsjr/impl/GxzxLsjrcpxxServiceImpl.java |
| 23 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/lsjr/impl/GxzxLsjrServiceImpl.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/lsjr/impl/GxzxLsjrServiceImpl.java |
| 24 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/lsjy/impl/GxzxLsjyZcxxServiceImpl.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/lsjy/impl/GxzxLsjyZcxxServiceImpl.java |
1.4 Mapper接口层(9个)
| # |
源文件 |
目标路径 |
| 25 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/mapper/TxwGxzxGxbqbMapper.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/mapper/gxzx/TxwGxzxGxbqbMapper.java |
| 26 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/mapper/TxwGxzxGxscbMapper.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/mapper/gxzx/TxwGxzxGxscbMapper.java |
| 27 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/mapper/TxwGxzxGxxxbMapper.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/mapper/gxzx/TxwGxzxGxxxbMapper.java |
| 28 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/mapper/TxwGxzxQybqbMapper.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/mapper/gxzx/TxwGxzxQybqbMapper.java |
| 29 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/mapper/TxwGxzxRzsqjlbMapper.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/mapper/gxzx/TxwGxzxRzsqjlbMapper.java |
| 30 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/mapper/TxwGxzxShqkbMapper.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/mapper/gxzx/TxwGxzxShqkbMapper.java |
| 31 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/mapper/lsjr/GxzxDkbxsqxxMapper.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/mapper/gxzx/lsjr/GxzxDkbxsqxxMapper.java |
| 32 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/mapper/lsjr/GxzxLsjrcpxxMapper.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/mapper/gxzx/lsjr/GxzxLsjrcpxxMapper.java |
| 33 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/mapper/lsjy/GxzxLsjyZcxxMapper.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/mapper/gxzx/lsjy/GxzxLsjyZcxxMapper.java |
1.5 Domain层(6个)
| # |
源文件 |
目标路径 |
| 34 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/domain/TxwGxzxGxbqbDO.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/domain/gxzx/TxwGxzxGxbqbDO.java |
| 35 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/domain/TxwGxzxGxscbDO.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/domain/gxzx/TxwGxzxGxscbDO.java |
| 36 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/domain/TxwGxzxGxxxbDO.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/domain/gxzx/TxwGxzxGxxxbDO.java |
| 37 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/domain/TxwGxzxQybqbDO.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/domain/gxzx/TxwGxzxQybqbDO.java |
| 38 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/domain/TxwGxzxRzsqjlbDO.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/domain/gxzx/TxwGxzxRzsqjlbDO.java |
| 39 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/domain/TxwGxzxShqkbDO.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/domain/gxzx/TxwGxzxShqkbDO.java |
1.6 VO层(13个)
| # |
源文件 |
目标路径 |
| 40 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/vo/GetGxSqListReqVO.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/GetGxSqListReqVO.java |
| 41 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/vo/GxfbReqVO.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/GxfbReqVO.java |
| 42 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/vo/GxscReqVO.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/GxscReqVO.java |
| 43 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/vo/GxsjReqVO.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/GxsjReqVO.java |
| 44 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/vo/GxspReqVO.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/GxspReqVO.java |
| 45 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/vo/GxsqResVO.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/GxsqResVO.java |
| 46 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/vo/GxxxReqVO.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/GxxxReqVO.java |
| 47 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/vo/GxxxVO.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/GxxxVO.java |
| 48 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/vo/QyrzListReqVO.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/QyrzListReqVO.java |
| 49 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/vo/QyRzSpReqVO.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/QyRzSpReqVO.java |
| 50 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/vo/QyRzSqReqVO.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/QyRzSqReqVO.java |
| 51 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/vo/QyRzSqxxVO.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/QyRzSqxxVO.java |
| 52 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/vo/ShqkxxVO.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/ShqkxxVO.java |
1.7 Dto层(1个)
| # |
源文件 |
目标路径 |
| 53 |
txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/dto/GxzxLsjrcpImportDto.java |
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/dto/gxzx/GxzxLsjrcpImportDto.java |
1.8 Mapper XML层(9个)
| # |
源文件 |
目标路径 |
| 54 |
txw-gxzx-service-biz/src/main/resources/mapper/TxwGxzxGxbqbMapper.xml |
txw-mhzc-service-biz/src/main/resources/mapper/gxzx/TxwGxzxGxbqbMapper.xml |
| 55 |
txw-gxzx-service-biz/src/main/resources/mapper/TxwGxzxGxscbMapper.xml |
txw-mhzc-service-biz/src/main/resources/mapper/gxzx/TxwGxzxGxscbMapper.xml |
| 56 |
txw-gxzx-service-biz/src/main/resources/mapper/TxwGxzxGxxxbMapper.xml |
txw-mhzc-service-biz/src/main/resources/mapper/gxzx/TxwGxzxGxxxbMapper.xml |
| 57 |
txw-gxzx-service-biz/src/main/resources/mapper/TxwGxzxQybqbMapper.xml |
txw-mhzc-service-biz/src/main/resources/mapper/gxzx/TxwGxzxQybqbMapper.xml |
| 58 |
txw-gxzx-service-biz/src/main/resources/mapper/TxwGxzxRzsqjlbMapper.xml |
txw-mhzc-service-biz/src/main/resources/mapper/gxzx/TxwGxzxRzsqjlbMapper.xml |
| 59 |
txw-gxzx-service-biz/src/main/resources/mapper/TxwGxzxShqkbMapper.xml |
txw-mhzc-service-biz/src/main/resources/mapper/gxzx/TxwGxzxShqkbMapper.xml |
| 60 |
txw-gxzx-service-biz/src/main/resources/mapper/lsjr/GxzxDkbxsqxxMapper.xml |
txw-mhzc-service-biz/src/main/resources/mapper/gxzx/lsjr/GxzxDkbxsqxxMapper.xml |
| 61 |
txw-gxzx-service-biz/src/main/resources/mapper/lsjr/GxzxLsjrcpxxMapper.xml |
txw-mhzc-service-biz/src/main/resources/mapper/gxzx/lsjr/GxzxLsjrcpxxMapper.xml |
| 62 |
txw-gxzx-service-biz/src/main/resources/mapper/lsjy/GxzxLsjyZcxxMapper.xml |
txw-mhzc-service-biz/src/main/resources/mapper/gxzx/lsjy/GxzxLsjyZcxxMapper.xml |
二、数据库表(9张)
| # |
表名 |
说明 |
| 1 |
txw_gxzx_gxxxb |
供需信息表 |
| 2 |
txw_gxzx_shqkb |
审核情况表 |
| 3 |
txw_gxzx_gxscb |
供需收藏表 |
| 4 |
txw_gxzx_gxbqb |
供需标签表 |
| 5 |
txw_gxzx_qybqb |
企业标签表 |
| 6 |
txw_gxzx_rzsqjlb |
入驻申请记录表 |
| 7 |
txw_gxzx_lsjrcpxx |
绿色金融产品信息表 |
| 8 |
txw_gxzx_dkbxsqxx |
贷款保险申请信息表 |
| 9 |
txw_gxzx_lsjy_zcxx |
绿色交易资产信息表 |
三、执行步骤
Phase 1: 数据库迁移(生产环境执行)
Phase 2: 代码迁移(开发环境执行)
目录创建
文件迁移(按层级)
包名修改
Phase 3: 配置更新
Phase 4: 编译验证
四、生产环境升级步骤(详细)
4.1 升级前准备
# 1. 备份数据库
mysqldump -h host -u user -p gxzx_db txw_gxzx_gxxxb txw_gxzx_shqkb txw_gxzx_gxscb txw_gxzx_gxbqb txw_gxzx_qybqb txw_gxzx_rzsqjlb txw_gxzx_lsjrcpxx txw_gxzx_dkbxsqxx txw_gxzx_lsjy_zcxx > gxzx_backup_$(date +%Y%m%d).sql
# 2. 确认 mhzc 服务最新代码已部署
# 3. 通知相关团队停机维护时间窗口
4.2 数据迁移
-- 在 mhzc 数据库执行
-- 1. 创建表(DDL 从 gxzx 库导出)
CREATE TABLE txw_gxzx_gxxxb LIKE gxzx_db.txw_gxzx_gxxxb;
CREATE TABLE txw_gxzx_shqkb LIKE gxzx_db.txw_gxzx_shqkb;
-- ... 其他7张表同理
-- 2. 数据迁移
INSERT INTO mhzc_db.txw_gxzx_gxxxb SELECT * FROM gxzx_db.txw_gxzx_gxxxb;
INSERT INTO mhzc_db.txw_gxzx_shqkb SELECT * FROM gxzx_db.txw_gxzx_shqkb;
-- ... 其他7张表同理
-- 3. 验证
SELECT COUNT(*) FROM txw_gxzx_gxxxb; -- 源库和目标库应该一致
SELECT COUNT(*) FROM txw_gxzx_shqkb;
-- ... 其他表验证
4.3 应用部署
# 1. 停止 gxzx 服务
# 2. 部署新 mhzc 服务(包含 gxzx 代码)
# 3. 启动 mhzc 服务
# 4. 验证接口
五、回滚方案
如果迁移失败,执行以下回滚:
-- 恢复原状
-- 1. 停止 mhzc 服务
-- 2. 恢复 gxzx 服务
-- 3. 如果需要,回滚数据库
DROP TABLE IF EXISTS mhzc_db.txw_gxzx_gxxxb;
-- 使用备份恢复
六、验证清单
| # |
验证项 |
验证方法 |
| 1 |
数据库表记录数一致 |
SELECT COUNT(*) FROM txw_gxzx_gxxxb 对比 |
| 2 |
Controller 注入正常 |
启动应用无报错 |
| 3 |
接口路径可访问 |
curl http://mhzc:9002/gxdt/gxxxList |
| 4 |
供需发布功能正常 |
实际测试发布流程 |
| 5 |
绿色金融功能正常 |
测试信贷/保险产品查询 |
| 6 |
企业入驻功能正常 |
测试入驻申请流程 |
| 7 |
搜索服务聚合供需 |
调用搜索接口验证 |
七、文件变更汇总
新增目录
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/controller/gxzx/
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/impl/
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/lsjr/impl/
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/lsjy/impl/
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/mapper/gxzx/lsjr/
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/mapper/gxzx/lsjy/
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/domain/gxzx/
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/
txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/dto/gxzx/
txw-mhzc-service-biz/src/main/resources/mapper/gxzx/lsjr/
txw-mhzc-service-biz/src/main/resources/mapper/gxzx/lsjy/
修改文件
txw-mhzc/pom.xml(可能需要新增依赖)
txw-mhzc/.../MhzcServiceConfiguration.java(MapperScan 更新)
包名映射规则
com.css.txw.gxzx.controller → com.css.txw.mhzc.controller.gxzx
com.css.txw.gxzx.service → com.css.txw.mhzc.service.gxzx
com.css.txw.gxzx.service.impl → com.css.txw.mhzc.service.gxzx.impl
com.css.txw.gxzx.service.lsjr.impl → com.css.txw.mhzc.service.gxzx.lsjr.impl
com.css.txw.gxzx.service.lsjy.impl → com.css.txw.mhzc.service.gxzx.lsjy.impl
com.css.txw.gxzx.mapper → com.css.txw.mhzc.mapper.gxzx
com.css.txw.gxzx.mapper.lsjr → com.css.txw.mhzc.mapper.gxzx.lsjr
com.css.txw.gxzx.mapper.lsjy → com.css.txw.mhzc.mapper.gxzx.lsjy
com.css.txw.gxzx.pojo.domain → com.css.txw.mhzc.pojo.domain.gxzx
com.css.txw.gxzx.pojo.vo → com.css.txw.mhzc.pojo.vo.gxzx
com.css.txw.gxzx.pojo.dto → com.css.txw.mhzc.pojo.dto.gxzx