.. | ||
.idea | ||
bin | ||
conf | ||
src/main | ||
target | ||
DEPLOY.md | ||
pom.xml | ||
README.md | ||
配置文件密码加密.txt |
MPS模拟批量处理系统
项目概述
员工计价系统后台Java跑批程序,用于每日处理T-1的计价结果。
功能特性
- 自动批量处理: 每天执行,处理前一天的计价结果
- 状态控制: 基于mps_batch表的状态控制机制
- 业务控制: 基于business_subcategory表的业务开关控制
- 重跑支持: 支持整个批量重跑或指定业务重跑(暂时取消)
- 数据库兼容: 支持MySQL和达梦数据库
- 完整日志: 详细的执行日志和批量执行专用日志
项目结构
MpsFormalBatch/
├── src/main/java/com/gtsoft/mps/batch/
│ ├── config/ # 配置管理
│ │ └── ConfigManager.java
│ ├── service/ # 业务服务
│ │ ├── BatchStatusService.java
│ │ └── BusinessControlService.java
│ ├── processor/ # 业务处理器
│ │ ├── AbstractBusinessProcessor.java
│ │ ├── BusinessProcessorFactory.java
│ │ ├── BIZ000Processor.java # 基础数据处理
│ │ ├── BIZ001Processor.java # 智E通个人版
│ │ ├── BIZ002Processor.java # 智E通未动户激活
│ │ ├── BIZ003Processor.java # 智E通企业版
│ │ ├── BIZ004Processor.java # 企业手机银行
│ │ ├── BIZ005Processor.java # 新增综合收单商户
│ │ └── BIZ008Processor.java # 网上支付
│ ├── util/ # 工具类
│ │ ├── DatabaseConnection.java
│ │ └── DateUtils.java
│ └── MpsFormalBatchMain.java # 主程序
├── src/main/resources/
│ └── logback.xml # 日志配置
├── conf/
│ └── application.properties # 应用配置
├── bin/ # 启动脚本
│ ├── start.sh # Linux启动脚本
│ ├── start.bat # Windows启动脚本
│ ├── rerun.sh # Linux重跑脚本
│ └── rerun.bat # Windows重跑脚本
├── logs/ # 日志目录
├── DDL/ # 数据库脚本
└── example/ # 业务逻辑示例
批量控制逻辑
状态控制表:mps_batch
状态值 | 状态说明 | 处理策略 |
---|---|---|
0 | 初始状态 | 重跑当日批量 |
1 | 成功 | 创建下一天批量记录 |
2 | 执行中 | 不允许重复执行 |
3 | 失败 | 重跑当日批量 |
业务控制表:business_subcategory
status = '0'
: 业务可执行status != '0'
: 业务跳过不执行
使用方法
1. 编译项目
mvn clean package
2. 配置数据库
编辑 conf/application.properties
:
# MySQL配置(当前使用)
db.mysql.url=jdbc:mysql://localhost:3306/cdsdb?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false
db.mysql.username=root
db.mysql.password=123456
# 达梦配置(备用)
db.dm.url=jdbc:dm://localhost:5236/DMSERVER?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
db.dm.username=SYSDBA
db.dm.password=SYSDBA
# 数据库类型选择
db.type=mysql
3. 执行批量
正常批量(自动确定日期)
# Linux
./bin/start.sh
# Windows
bin\start.bat
重跑整个批量
# Linux
./bin/rerun.sh 20250901
# Windows
bin\rerun.bat 20250901
重跑指定业务(暂时取消)
# Linux
./bin/rerun.sh 20250901 BIZ001,BIZ002
# Windows
bin\rerun.bat 20250901 BIZ001,BIZ002
4. 定时任务设置
在Linux服务器上设置crontab:
# 每天凌晨2点执行批量
0 2 * * * /path/to/MpsFormalBatch/bin/start.sh >> /path/to/MpsFormalBatch/logs/cron.log 2>&1
支持的业务类型
业务代码 | 业务名称 | 对应SQL文件 |
---|---|---|
BIZ000 | 基础数据处理-插入全量经办/营销人员信息 | 000000.sql |
BIZ001 | 有效智e通(个人版)计价处理 | BIZ001.sql |
BIZ002 | 智e通未动户激活计价处理 | BIZ002.sql |
BIZ003 | 智e通企业版计价处理 | BIZ003.sql |
BIZ004 | 企业手机银行计价处理 | BIZ004.sql |
BIZ005 | 新增综合收单商户计价处理 | BIZ005.sql |
BIZ008 | 网上支付计价处理 | BIZ008.sql |
日志说明
日志文件
logs/mps-batch.log
: 应用主日志logs/batch-execution.log
: 批量执行专用日志
日志级别
- INFO: 正常执行信息
- WARN: 警告信息
- ERROR: 错误信息
- DEBUG: 调试信息(默认关闭)
异常处理
常见问题
-
数据库连接失败
- 检查数据库配置
- 确认数据库服务状态
- 验证网络连通性
-
批量状态冲突
- 检查mps_batch表状态
- 如需强制执行,手动修改状态为0或3
-
业务处理失败
- 查看详细日志
- 检查数据完整性
- 验证业务逻辑
监控建议
- 监控日志文件大小和异常关键字
- 监控批量执行时间和成功率
- 设置数据库连接超时告警
- 配置邮件或短信通知
扩展说明
添加新业务
- 在
business_subcategory
表中添加业务记录 - 创建对应的Processor类继承
AbstractBusinessProcessor
- 在
BusinessProcessorFactory
中注册新业务 - 实现具体的业务逻辑
数据库迁移
程序支持从MySQL迁移到达梦数据库:
- 修改
conf/application.properties
中的db.type
- 确保达梦数据库驱动jar包在classpath中
- 验证SQL语句兼容性
技术规格
- Java版本: OpenJDK 17
- 数据库: MySQL 8.0+ / 达梦 8.0+
- 服务器: Linux
- 依赖管理: Maven
- 日志框架: Logback + SLF4J
联系信息
如有问题请联系开发团队或查看项目文档。