# wedcs-generate-tool **Repository Path**: XMSGD/wedcs-generate-tool ## Basic Information - **Project Name**: wedcs-generate-tool - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-21 - **Last Updated**: 2026-04-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WEDCS 区划用水量生成自动化脚本 ## 功能说明 自动登录 WEDCS 系统并调用区划用水量生成接口,支持: - 定时执行(每天指定时间) - 手动指定日期执行 - 自动验证码识别(可选) ## 技术细节 ### 加密方式 系统使用 **SM4 (国密算法)** 加密登录请求: - 加密模式:ECB - 密钥(Hex):`B375FE989DCB9247CFBFB6CC81C3365F` - 登录请求体需要将完整的 JSON 对象加密后传输 - 返回的 Token 也是加密的,需要解密后使用 ### 验证码处理 - 验证码接口:`GET /captchaImage` - 返回 UUID + Base64 图片 - 可使用 `ddddocr` 库自动识别验证码 ### 无验证码登录 如果用户有 `data_user` 角色,可设置 `jcaptcha="true"` 跳过验证码验证。 ## 安装 ### 方式一:Python脚本运行 ```bash pip install -r requirements.txt ``` ### 方式二:使用exe可执行文件 exe文件无需安装Python环境,可直接运行。 ## 打包成exe ### 快速打包 双击运行 `build.bat`,选择打包模式: - **完整版**: 包含验证码自动识别功能(约50MB) - **轻量版**: 需手动输入验证码(约10MB) ### 命令行打包 ```bash # 安装打包工具 pip install pyinstaller gmssl requests ddddocr # 打包完整版 python build_exe.py # 打包轻量版 python build_exe.py --lite ``` ### 直接使用PyInstaller ```bash # 完整版 pyinstaller --onefile --console --name WaterUseRegionGenerator --clean --noconfirm --hidden-import gmssl --hidden-import requests --hidden-import ddddocr --collect-data ddddocr water_use_region_generator.py # 轻量版 pyinstaller --onefile --console --name WaterUseRegionGeneratorLite --clean --noconfirm --hidden-import gmssl --hidden-import requests water_use_region_generator.py ``` 打包完成后,exe文件位于 `dist\` 目录。 ## 使用方法 ### 使用exe文件 exe文件使用方式与Python脚本相同: ```bash # 生成昨天的数据 WaterUseRegionGenerator.exe --yesterday # 生成指定日期 WaterUseRegionGenerator.exe --date 2025-01-15 # 自定义参数 WaterUseRegionGenerator.exe --url http://wedcs.vpc-chenqc.local/prod-api --username admin --password admin123 --yesterday ``` ### 生成昨天的数据 ```bash python water_use_region_generator.py --yesterday ``` ### 生成指定日期的数据 ```bash python water_use_region_generator.py --date 2025-01-15 ``` ### 生成指定日期范围的数据 ```bash python water_use_region_generator.py --start-date 2025-01-01 --end-date 2025-01-15 ``` ### 定时执行模式 ```bash # 每天凌晨2点执行 python water_use_region_generator.py --schedule --time 02:00 # 每天早上6点执行 python water_use_region_generator.py --schedule --time 06:00 ``` ### 指定取水口 ```bash python water_use_region_generator.py --date 2025-01-15 --well-code W001 ``` ### 自定义服务器地址和账户 ```bash python water_use_region_generator.py --url http://localhost:8080 --username admin --password admin123 --yesterday ``` ## 参数说明 | 参数 | 说明 | 默认值 | |------|------|--------| | `--date` | 指定单个日期 (yyyy-MM-dd) | 无 | | `--start-date` | 开始日期 | 无 | | `--end-date` | 结束日期 | 无 | | `--yesterday` | 生成昨天的数据 | false | | `--schedule` | 定时执行模式 | false | | `--time` | 定时执行时间 (HH:MM) | 02:00 | | `--well-code` | 取水口编号 | 空 | | `--sn` | 控制器编号 | 空 | | `--url` | API基础URL | http://wedcs.vpc-chenqc.local/prod-api | | `--username` | 登录用户名 | admin | | `--password` | 登录密码 | admin123 | ## 定时任务配置 ### Windows 任务计划程序 **使用exe文件:** 1. 打开"任务计划程序" 2. 创建基本任务 3. 设置触发器为"每天" 4. 操作设置为"启动程序" 5. 程序路径:`WaterUseRegionGenerator.exe` 6. 参数:`--yesterday` 7. 起始于:exe所在目录 **使用Python脚本:** 1. 打开"任务计划程序" 2. 创建基本任务 3. 设置触发器为"每天" 4. 操作设置为"启动程序" 5. 程序路径:`python.exe` 6. 参数:`water_use_region_generator.py --yesterday` 7. 起始于:脚本所在目录 ### Linux Cron ```bash # 编辑 crontab crontab -e # 每天凌晨2点执行 0 2 * * * cd /path/to/scripts && python water_use_region_generator.py --yesterday >> /var/log/water_use.log 2>&1 ``` ## 注意事项 1. 验证码自动识别需要安装 `ddddocr`,如未安装会提示手动输入 2. 登录请求体和 Token 都使用 SM4 加密 3. 如果用户有 `data_user` 角色,可跳过验证码验证 4. 建议使用定时任务模式时配合日志文件记录执行情况 ## API 接口说明 ### 登录接口 ``` POST /login Content-Type: application/json 请求体(加密后): "hex_encrypted_string" 响应: { "code": 200, "token": "encrypted_token_hex" } ``` ### 验证码接口 ``` GET /captchaImage 响应: { "captchaEnabled": true, "uuid": "xxx", "img": "base64_image", "configSm": "true/false" } ``` ### 区划用水量生成接口 ``` POST /well/count/generate/water/use/region Authorization: Bearer Content-Type: application/json 请求体: { "type": "1", "startDate": "2025-01-01", "endDate": "2025-01-15", "wellCode": "", "sn": "" } 响应: { "code": 200, "data": 100 } ``` ## 错误处理 脚本会在以下情况报错: - 认证失败(用户名密码错误、验证码错误) - 网络请求失败 - API 返回错误码 错误信息会输出到日志,可通过 `--verbose` 参数查看详细调试信息。 ## 更新配置 如需更改默认配置,编辑脚本顶部的配置部分: ```python BASE_URL = "http://wedcs.vpc-chenqc.local/prod-api" USERNAME = "admin" PASSWORD = "admin123" LOGIN_SM4_KEY = "B375FE989DCB9247CFBFB6CC81C3365F" ```