mps-batch/MpsSimulationBatch
2025-09-24 23:57:17 +08:00
..
.idea 模拟计价批量 2025-09-13 16:31:45 +08:00
bin 模拟计价批量 2025-09-13 16:31:45 +08:00
conf 模拟计价批量,获取营销数据改为获取当月所有数据 2025-09-17 21:18:21 +08:00
src/main 初始插入员工数据时,添加create_by栏位 2025-09-24 22:42:18 +08:00
target 结果表create_by栏位更新数据 2025-09-24 23:57:17 +08:00
DEPLOY.md 模拟计价批量 2025-09-13 16:31:45 +08:00
pom.xml 模拟计价批量 2025-09-13 16:31:45 +08:00
README.md 模拟计价批量 2025-09-13 16:31:45 +08:00
配置文件密码加密.txt 模拟计价批量 2025-09-13 16:31:45 +08:00

MPS模拟批量处理系统

项目概述

员工计价系统后台Java跑批程序用于每日处理T-1的计价结果

功能特性

  • 自动批量处理: 每天执行,处理前一天的计价结果
  • 状态控制: 基于mps_batch_simulation表的状态控制机制
  • 业务控制: 基于business_subcategory表的业务开关控制
  • 重跑支持: 支持整个批量重跑或指定业务重跑(暂时取消)
  • 数据库兼容: 支持MySQL和达梦数据库
  • 完整日志: 详细的执行日志和批量执行专用日志

项目结构

MpsSimulationBatch/
├── 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
│   └── MpsSimulationBatchMain.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_simulation

状态值 状态说明 处理策略
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/MpsSimulationBatch/bin/start.sh >> /path/to/MpsSimulationBatch/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: 调试信息(默认关闭)

异常处理

常见问题

  1. 数据库连接失败

    • 检查数据库配置
    • 确认数据库服务状态
    • 验证网络连通性
  2. 批量状态冲突

    • 检查mps_batch_simulation表状态
    • 如需强制执行手动修改状态为0或3
  3. 业务处理失败

    • 查看详细日志
    • 检查数据完整性
    • 验证业务逻辑

监控建议

  1. 监控日志文件大小和异常关键字
  2. 监控批量执行时间和成功率
  3. 设置数据库连接超时告警
  4. 配置邮件或短信通知

扩展说明

添加新业务

  1. business_subcategory表中添加业务记录
  2. 创建对应的Processor类继承AbstractBusinessProcessor
  3. BusinessProcessorFactory中注册新业务
  4. 实现具体的业务逻辑

数据库迁移

程序支持从MySQL迁移到达梦数据库

  1. 修改conf/application.properties中的db.type
  2. 确保达梦数据库驱动jar包在classpath中
  3. 验证SQL语句兼容性

技术规格

  • Java版本: OpenJDK 17
  • 数据库: MySQL 8.0+ / 达梦 8.0+
  • 服务器: Linux
  • 依赖管理: Maven
  • 日志框架: Logback + SLF4J

联系信息

如有问题请联系开发团队或查看项目文档。