Commit Graph

34 Commits

Author SHA1 Message Date
weicw1996 582d7dfbcb 学生同步稳态只写变更行
实测写入才是大头,不是平台拉取:9.8 万行的表上 800 行/批 upsert 要 716ms,
123 批共 88 秒;而窄读全部 (xh, row_hash) 只要 2.1 秒。

做法:
- gxmu_student 增列 row_hash,存放「平台权威字段」的 MD5 指纹
  (迁移 sql/20260915_add_student_row_hash.sql,可重复执行)
- 同步时先窄读现有指纹,只 upsert 指纹变化的行
- 窄读同时服务于停用差集,省掉原先单独的一次 selectAllXh
- deactivateByXh 顺带把 row_hash 置空,保证停用行以后重新出现时一定被重新写入

指纹规则单独成类 StudentFingerprint:它必须与 mapper 的
ON DUPLICATE KEY UPDATE 子句严格对应——往 UPDATE 里加字段却忘了加进指纹,
那一列就会静默地不再更新,这类 bug 不报错、只产生过期数据。
因此附有逐字段的测试,并由 MapperFieldWhitelistTest 守住 UPDATE 子句本身。

附带收益:未变更的行不再刷新 update_time,该字段恢复「最后变更时间」的含义;
码表修正后 nation/politics 变化会触发自动重算,正是 ADR-0006 承诺的行为。

预期学生同步 170 秒 -> 约 85 秒,其中写库 88 秒 -> 约 2 秒。
现有 98187 行 row_hash 为空,部署后第一次仍会全量写一次。
离线单测 50 个。
2026-09-15 16:14:05 +08:00
weicw1996 cd54039f28 接入医科大开放平台数据同步
新增 com.gxwebsoft.gxmu.openplat:开放平台客户端(oauth 鉴权、token 缓存与失效
重取、分页拉取)、部门/教师/班级/学生四段同步、异步编排与手动同步接口、学生认领、
学生名册查询与导出、每天 03:30 的定时任务、同步记录。

关键设计:
- 名册与登录账号分离,学生通过「认领」(手机号自动 / 学号姓名自助)关联 sys_user
- 组织数据以 sys_organization 为唯一载体,gxmu_college 废弃
- 平台无可用增量字段,只做全量拉取 + 幂等 upsert
- 上游消失只停用不删除,且只作用于同步来源的记录(避免误停用人工维护的研究生班)
- 平台权威字段按白名单覆盖,人工字段不触碰
- 码表可配置并保留原始码,码值实测存在两套编码混用,不做硬编码
- 手动同步为异步:提交返回批次号,前端轮询 /status 看分段进度

性能:
- 班级/部门由逐条 update 改为多行 upsert,班级 1584 条 41s -> 0.19s
- 码表解析加进程内缓存,学生同步由 >17 分钟不完成 -> 170 秒完成 98187 行

迁移脚本需手动执行(可重复执行):
  sql/20260912_create_openplat_sync_tables.sql
  sql/20260912_add_openplat_menu.sql

离线单测 43 个;另有联网集成测试 OpenPlatformClientIT(需 -Dopenplat.it=true)。
2026-09-15 15:54:49 +08:00
b2894lxlx f379291e4f 260720 2026-07-20 11:48:06 +08:00
b2894lxlx 7119dc76a9 250826 2025-08-26 21:29:55 +08:00
b2894lxlx 1a35b30c7e 250522 2025-05-22 10:28:37 +08:00
b2894lxlx bfbde8a0f5 250522 2025-05-22 10:27:57 +08:00
b2894lxlx 9139457203 240401 2024-04-01 22:11:01 +08:00
gxwebsoft 1a47ed7630 新增配件管理模块 2024-02-27 20:45:12 +08:00
gxwebsoft 349ef16c20 新增配件管理模块 2024-02-27 20:29:16 +08:00
gxwebsoft 89bcd98570 完成保养记录和厂内维修模块 2024-02-25 19:33:40 +08:00
gxwebsoft 3c22a60a1c 完成安全维保管理模块 2024-02-25 15:23:54 +08:00
gxwebsoft d72849ad50 新增采购入库功能 2024-02-05 21:48:07 +08:00
gxwebsoft 20f190410c 新增标准节、优化设备统计 2024-02-05 15:54:54 +08:00
gxwebsoft 426d0a685a 合并代码 2024-02-03 16:42:16 +08:00
b2894lxlx bfefa9a787 调整 2024-01-31 14:55:59 +08:00
b2894lxlx 2fd8b3d341 调整 2024-01-31 14:54:49 +08:00
b2894lxlx 71e28fd448 新增收款;
新增项目结算书
2023-06-18 11:02:37 +08:00
b2894lxlx d61e7b163d 新增转租管理;
结构调整
2023-06-17 12:39:19 +08:00
b2894lxlx ff87369bab 新增历史结算;
新增租单管理
2023-06-13 01:44:45 +08:00
b2894lxlx 65f21b7d0a 新增历史结算;
新增租单管理
2023-06-13 01:44:40 +08:00
b2894lxlx 8307a16689 完善合同管理;
新增结算管理
2023-06-12 01:32:34 +08:00
b2894lxlx 385bfb96b8 新增客户管理;
新增合同管理
2023-06-10 01:29:06 +08:00
gxwebsoft 484999cd07 合并代码 2023-06-09 12:30:28 +08:00
gxwebsoft 61db0f4b5a Merge remote-tracking branch 'origin/master' 2023-06-08 19:30:30 +08:00
gxwebsoft 6e3bd8f55f 新增项目管理 2023-06-08 19:30:24 +08:00
weicw 83d918a467 删除无用字段 2023-06-08 12:38:25 +08:00
weicw 6b9d4c4ef8 关键字模糊搜索 2023-06-06 12:45:36 +08:00
weicw f1b1ab0642 产权公司 2023-06-06 10:26:38 +08:00
weicw a53406898f 防坠器 2023-06-05 22:57:09 +08:00
gxwebsoft 47e758e22f 修复设备分类和设备型号问题 2023-06-05 17:06:07 +08:00
gxwebsoft d2a82a97e6 初始化 2023-06-04 11:18:05 +08:00
gxwebsoft 536f8079b0 初始化 2023-06-04 00:35:22 +08:00
gxwebsoft 428e4996f9 初始化 2023-06-04 00:28:12 +08:00
南宁网宿科技 912944faea Initial commit 2023-06-03 23:56:49 +08:00