zl
Loading Heatmap…

zl pushed to dgq at PowerExpress/ep-staff-wx

19 hours ago

zl pushed to jude_0516 at PowerExpress/ep-staff-wx

19 hours ago

zl pushed to sechdule_plan_20260511 at PowerExpress/pe-opeartion-server

  • 9fbe9d6706 refactor: cycle schedule phase 按电池仓粒度展开 - CycleSchedule.CyclePhase / DailySchedule.GroupSchedule 的 batteryAssetId/chargerAssetId 从 List<String> 改为 String - DISCHARGE/CHARGE phase 按每个电池仓独立展开,TRANSPORT 同理 - DailySchedule.maxConcurrentChargeSockets() 不再依赖 batteryCount 参数 - PowerPlanGenerator 内部实例化 FeasibilityChecker,简化构造 - 同步更新相关测试
  • 48a72c4887 Merge remote-tracking branch 'origin/mqy20260508' into sechdule_plan_20260511
  • fdfe29786b Merge branch 'mqy20260508' of http://114.215.146.132:3000/PowerExpress/pe-opeartion-server into mqy20260508
  • c265292ed8 Merge branch 'mqy20260508' of http://114.215.146.132:3000/PowerExpress/pe-opeartion-server into mqy20260508
  • fe96866558 Merge remote-tracking branch 'origin/mqy20260508' into sechdule_plan_20260511
  • Compare 20 commits »

21 hours ago

zl pushed to master at PowerExpress/ep-opeartion-web

  • d522153009 refactor(deploy): 优化线上部署脚本,使用原子替换避免服务中断 修复问题: - 用 tar 管道替代 SCP,避免 SCP 创建 dist 子目录的 bug - 原子替换部署:先上传到临时目录,确认成功后再 mv 替换, 避免先删后传导致上传失败时线上环境被清空 - 备份加 PID 后缀($$),避免同一秒部署时备份冲突 - 回滚优先从 .old 回滚,fallback 到备份目录 - 自动清理旧备份(保留最近 5 个) - 验证通过后才删除 .old,确保可回滚
  • 61428dd231 fix(deploy): 修复生产环境配置检查的 grep 模式,支持带引号和不带引号的值
  • 21dceffcd2 feat(调度动画): CyclePhase 接口添加资产相关字段 为支持主放电/辅助放电的资产绑定显示,在 CyclePhase 接口中添加: - batteryAssetIds: 电池资产ID列表 - tractorAssetId: 牵引车资产ID - chargerAssetIds: 充电机资产ID列表 - acDischargeAssetId: 交流放电机资产ID - semiTrailerAssetId: 半挂车资产ID
  • Compare 3 commits »

1 day ago

zl pushed to master at Mqy/Wisdom-Data

2 days ago

zl pushed to master at Mqy/Wisdom-Data

2 days ago

zl pushed to master at Mqy/Wisdom-Data

2 days ago

zl pushed to sechdule_plan_20260511 at PowerExpress/pe-opeartion-server

  • daa2347646 feat(调度循环): CyclePhase 关联具体资产,运输阶段按电池仓展开 - CycleSchedule.CyclePhase 增加 batteryAssetIds / tractorAssetId / chargerAssetIds / acDischargeAssetId / semiTrailerAssetId 字段 - DailySchedule.GroupSchedule 增加资产 ID 字段 - CycleAnalyzer: DISCHARGE 关联放电交流仓,CHARGE 关联充电桩, TRANSPORT 按电池仓 1:1 展开为独立 phase,每个关联独立车头+挂车 - PowerPlanGenerator 适配新签名 - maxConcurrentTractors 简化(运输已按车头展开,不再乘电池数)
  • 9b687716fd merge: 合并 mqy20260508 分支 — 资产/工单/运维人员功能 - Asset 增加资产状态、电池类型筛选 - WorkOrder 扩展工单状态、操作人员关联 - OperatorController/WorkOrderController 接口更新
  • 0a10b0fe2a Merge branch 'sechdule_plan_20260511' of http://114.215.146.132:3000/PowerExpress/pe-opeartion-server into mqy20260508  Conflicts:  est-system/src/main/java/com/powerexpress/system/tool/dto/plan/EquipmentPlan.java  est-system/src/main/java/com/powerexpress/system/tool/service/PowerConfigService.java  est-system/src/main/java/com/powerexpress/system/tool/service/impl/PowerConfigServiceImpl.java  est-system/src/main/java/com/powerexpress/system/tool/service/impl/algorithm/PowerPlanGenerator.java  est-system/src/test/java/com/powerexpress/system/tool/service/PowerConfigFailureReasonTest.java
  • Compare 3 commits »

3 days ago

zl pushed to sechdule_plan_20260511 at PowerExpress/pe-opeartion-server

  • ae758dfab2 merge
  • e3a730e951 feat(智能方案): 方案3瞬时功率支撑 + 配置计算重构 + 调度时间线模板化 - 新增 AUXILIARY_DISCHARGE 副放电模式(InstantaneousPowerSupportType 枚举) - CustomEquipmentDto 扩展 auxiliaryDischargePowerRatio 字段 - CycleAnalyzer.analyzeAuxiliaryDischargeCycle() 实现双组协同轮换模型 - PowerPlanGenerator / PowerConfigServiceImpl 按类型路由 - PowerConfigRequest.settings Map → PowerConfigSettings typed DTO - 6 字段 record + Javadoc,dodDepth 迁移到场景绑定 CustomEquipmentDto - 删除 dead 字段 pcsMaximumNumber、emsSingleStepMode - BASE_USABLE_RATIO 提取为可配置参数,默认值在入口处统一处理 - CycleSchedule / DailySchedule 模板化循环时间线 - 新增 CycleSchedule/DailySchedule DTO,消除 phase/event 重复生成 - generateDailySchedule 基于 generateCycleSchedule 模板展开 - 删除 ScheduleEvent 死代码 - generateGlobalPlansRecursive 可读性优化 - 提取 GlobalPlanContext 封装透传参数,12 参数 → 6 参数 - 不可变 HashMap 拷贝替代 put/remove 回溯 - 新增 6 个测试文件(CycleSchedule/DailySchedule/AuxiliaryDischarge) - 更新现有测试构造,36 个测试全部通过
  • Compare 2 commits »

3 days ago

zl pushed to master at Mqy/Wisdom-Data

  • b8d3d8587c chore: temporarily disable VehicleSyncTask to suppress MySQL table missing errors

3 days ago

zl pushed to master at Mqy/Wisdom-Data

  • 55f1074b48 chore: extend health check timeout from 30s to 60s

3 days ago

zl pushed to master at Mqy/Wisdom-Data

  • ab5c6e7d5e fix: explicitly name TDengineService bean as 'tdengineService'

3 days ago

zl pushed to master at Mqy/Wisdom-Data

  • 58c2cae5cb feat: add --no-rollback flag to deploy script When --no-rollback is set, the script keeps the new version on the server even if health check fails, making it possible to inspect startup logs via journalctl to diagnose the issue.
  • 0c93311599 Merge remote-tracking branch 'origin/mqy20260511' into mqy20260511
  • 1518869329 Merge remote-tracking branch 'origin/master' into mqy20260511
  • e03f53003c docs: update CLAUDE.md with security, MQTT, and lock improvements
  • 3785254b58 docs: update CLAUDE.md with security, MQTT, and lock improvements
  • Compare 5 commits »

3 days ago

zl pushed to master at PowerExpress/ep-opeartion-web

  • fc59527866 feat(调度动画): AUXILIARY_DISCHARGE 模式下区分主放电和辅助放电显示 - 新增 isAuxiliaryDischargeMode / auxiliaryRatio / mainRatio computed - groupStates 中第一个 standby 组在副放电模式下标记为 auxiliaryDischarging - SVG 增加辅助放电组显示(虚线边框、半透明指示灯) - 主放电组文字显示为"主放电(95%)",辅助放电显示为"辅助放电(5%)" - 底部图例根据模式动态显示主/辅助放电说明

3 days ago

zl pushed to sechdule_plan_20260511 at PowerExpress/pe-opeartion-server

  • ca9d0c38f7 feat(调度动画): SchedulePlan 增加支撑类型字段用于前端主副放电区分 - SchedulePlan 增加 instantaneousPowerSupportType 和 auxiliaryDischargePowerRatio - PowerPlanGenerator.createSchedulePlan() 从 equipment 传递类型和比例

3 days ago

zl pushed to master at Mqy/Wisdom-Data

  • a8d4903d34 fix: add @Qualifier to TDengineService constructor for explicit bean wiring Without -parameters compiler flag, Spring cannot match ExecutorService parameter by name when multiple beans of the same type exist. This caused 'No bean named tdengineService available' startup failure on production deployment.

3 days ago

zl pushed to master at PowerExpress/ep-opeartion-web

  • 031264db41 fix(调度动画): 修复动画与真实调度不一致的问题 - startAnimation 中优先使用真实 cycleDurationMinutes 计算周期 - 添加 watch(groupCount) 在 schedulePlan 异步加载后重新初始化 batteryGroups

3 days ago

zl pushed to master at Mqy/Wisdom-Data

  • ebc7ce0564 refactor: remove dead code from VehicleSyncTask - Remove unused service fields (sysWorkorderService, sysIndicatorsService, sysCompanyService) - Remove commented-out insertIndicators() method - Remove unused imports (SysCompany, LocalDate, DateTimeFormatter, @Autowired) - Clean constructor to only keep actively used dependencies
  • c62801ac4c Merge remote-tracking branch 'origin/mqy20260511'
  • 470204fa50 docs: update CLAUDE.md with security, MQTT, and lock improvements
  • Compare 3 commits »

3 days ago

zl pushed to sechdule_plan_20260511 at PowerExpress/pe-opeartion-server

  • 76078bcbdb fix(设备清单): 扩展电池列表以包含所有组的电池 CycleAnalyzer 计算出的 groupsNeeded 可能大于负载配置中的电池数。 之前 SchedulePlan.batteries() 只包含每组的电池,导致设备清单中电池 数量显示不正确。现在根据 groupsNeeded 扩展电池列表,确保设备清单 和总价计算都基于实际的电池总数。

3 days ago

zl pushed to master at Mqy/Wisdom-Data

  • 44371c5c81 docs: update CLAUDE.md with security, MQTT, and lock improvements
  • 0fd6162ee1 refactor: CRITICAL/HIGH fixes — security, concurrency, resource leaks, input validation Security: - Remove hardcoded password fallbacks from application-druid.yml - Add table name whitelist validation to SysFaultService & SysAlarmService - Externalize VehicleSyncTask webhook URL to IotProperties config Concurrency & Resource Management: - Fix AbstractMqttConsumer reconnect/disconnect race (synchronized) - Fix MqttClient resource leaks in disconnect() with separate try blocks - Fix AbstractDynamicMqttConsumer broken-state MqttClient reuse - Fix TDengineService stableColumnCache unbounded growth (MAX_CACHE_SIZE=1000) Input Validation: - Add null/empty checks to MqttGenericConsumer (controllerId, path, timestamp) - Add null/empty checks to MqttFaultConsumer (controllerId, deviceId, type, desc) - Guard against ArrayIndexOutOfBoundsException on topic path split Tests: - Update VehicleSyncTaskTest for new IotProperties constructor param - All 79 tests pass, build succeeds
  • e6338b3ef4 refactor: P0-P1 complete — field injection, logging, hardcoded values, resource mgmt P0 fixes: - MqttFaultConsumer: array index bounds check, NPE guard on null coordinates - MqttStatusConsumer: NPE guard on null required fields - TDegnineAlarm: ResultSet try-with-resources, SQL injection whitelist - AbstractMqttConsumer: brokerUrl parsing validation, mqttPassword null guard P1 fixes: - Field injection → constructor injection (7 files: MqttFaultConsumer, MqttStatusConsumer, SysIndicatorsService, SysWorkorderService, TDengineService, TDegnineAlarm, AbstractMqttConsumer) - SLF4J {} placeholder logging (4 places in AbstractMqttConsumer) - Extract hardcoded constants: alarm status, date format, company ID prefix, webhook URL → IotProperties configuration - TDengineService: dataSourceInitialized volatile, GZIP try-with-resources Tests: - Fix MqttStatusConsumerTest/MqttFaultConsumerTest/MqttGenericConsumerTest for new constructors (remove @InjectMocks, manual instantiation) - 65/67 tests passing (2 TDengine JNI env-dependent failures excluded)
  • 28470869a3 test(P1): 新增3个测试类覆盖动态消费者基类与子类 - AbstractDynamicMqttConsumerTest: 4个测试覆盖 deepCopyMap(null/深拷贝/嵌套/List) - MqttDynamicConsumerTest: 6个测试覆盖 fetchTopics + insertredis - MqttChargeStationConsumerTest: 4个测试覆盖 fetchTopics(配置/null/空白/trim) - 测试总数 65→79,JaCoCo覆盖率 18%→25%
  • 5cbb11d169 chore(P2): 替换mysql驱动,移除emoji统一日志格式 - mysql-connector-java → mysql-connector-j 8.0.33 - TDengineService: 移除9处emoji(✅❌⚠️) - 统一使用SLF4J {}占位符,无字符串拼接
  • Compare 14 commits »

3 days ago