Commit Graph
395 Commits
Author SHA1 Message Date
pengjie 1a5a2dcb3f fix(emergency): 修复添加群成员错误提示、成员查询遗漏和日志缺少异常栈
- addGroupUser: IM添加失败时改用友好提示,内部错误记日志
- EmergencyOrderApiServiceImpl: 员工成员查询去掉operatorType过滤,补充兜底覆盖;userId去重
- EmergencyCloudManager: 微服务调用失败日志补充异常栈
2026-07-20 10:26:24 +08:00
pengjie fecfb2a355 fix(IM): addGroupMember前先multiAccountImport,防止账号未注册导致添加失败 2026-07-20 10:25:08 +08:00
lianlonggangandClaude f604d18b32 feat(消息管理): list接口支持按员工电话查询esContent
- queryPageList新增employeePhone参数
- 11位纯数字还原为3~4~4全角波浪线格式后like查询esContent
- 非11位用原值兜底like

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-16 16:25:31 +08:00
pengjieandClaude 145cf89a89 fix(emergency): addCareUsersToGroup改为员工编号匹配,解决手机号不准的TODO
数据流: 安眼手机号 → AYGC_YWK.EMP_BASIC_INFO查EMPLOYEE_NUM → getUserListByWorkNoList → 本系统用户ID

变更:
- LargeScreenDataMapper: 新增selectEmployeeNumsByPhones,INSTR模糊匹配支持多手机号字段
- EmergencyApiServiceImpl: 替换getUserByPhoneList直接匹配,改为两步反查;order_operator匹配同步调整
- 移除旧TODO注释

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-16 09:43:34 +08:00
pengjie d4f1d1a7bd fix(emergency): 修复一人一案接口VARCHAR列映射Double报类型转换异常
达梦库 EMP_PERSON_FILE 表的 BMI/HEIGHT/WEIGHT/WEIGHT_TARGET 等
列为 VARCHAR 类型,MyBatis 映射到 Double 时报类型转换异常,
将对应 VO 字段改为 String,并在 getBmi() 中解析字符串做保留一位小数。
2026-07-14 16:36:55 +08:00
pengjie 2d5198ec3f feat(emergency): 新增大屏一人一案移动端接口
根据当前登录用户身份证号,从安眼库 EMP_PERSON_FILE 关联表
查询最新档案详情,供移动端展示一人一案健康数据。
2026-07-14 16:22:05 +08:00
pengjie e844fec480 feat(emergency): 新增大屏关爱联络员身份判断接口
按当前登录人工号查询关爱关系表是否存在记录,前端用于按联络员
身份差异化展示。原 isLiaisonUser 实现固定返回 false,本次接通
真实查询逻辑。
2026-07-08 17:48:03 +08:00
pengjie 194c3b2134 feat(emergency): 推送IM消息增加resourceId文章ID字段 2026-07-08 09:20:50 +08:00
pengjie a1e5625ca7 fix(emergency): 推送时封面图相对路径拼接jeecg.path.show前缀为全路径 2026-07-07 14:54:22 +08:00
pengjie e16c0c2536 feat(emergency): 推送消息增加封面图字段messageImageUrl,去掉businessId 2026-07-07 14:24:56 +08:00
pengjie 66b77cc231 fix(im): sendGroupMsgArticle补充businessID协议字段,修复客户端显示[自定义消息] 2026-07-07 14:12:03 +08:00
pengjie 9b35cfe9c2 chore(im): 文章推送增加请求参数日志,便于验证businessId等信息 2026-07-07 13:51:58 +08:00
pengjie 4898a63b4b feat(emergency): 宣教推送IM消息改为独立方法sendGroupMsgArticle,不影响已有业务
- 新增 TencentCloudImUtil.sendGroupMsgArticle: From_Account生效、不覆盖businessID、fromAdmin动态判断
- 新增 TXController.sendGroupMsgArticle / IMHelloApi.sendGroupMsgArticle
- FirstAidPushServiceImpl 推送人改为当前登录用户,调用新方法
2026-07-07 13:43:21 +08:00
pengjie 37132eeeb6 fix(im): sendGroupMsgText取消From_Account注释,使fromUserId生效 2026-07-07 12:07:17 +08:00
pengjie 8efc5bbd56 feat(emergency): 移动端宣教详情接口增加阅读记录逻辑 2026-07-07 10:55:57 +08:00
pengjie 3c65f7eb24 fix(emergency): 宣教推送IM消息发送人改为当前登录用户,不再硬编码administrator 2026-07-07 10:39:36 +08:00
pengjieandClaude bb95f1d78f fix(emergency): add接口新增成功后返回主键ID
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-07 10:32:15 +08:00
pengjieandClaude 1484f621bd fix(emergency): addGroupUser 增加本人判断和IM群成员去重
- 过滤当前登录用户,不允许邀请自己入群
- 查询腾讯IM实际群成员,避免重复邀请已在群中的人
- IM查询失败时降级使用本地 order_operator 数据去重
- 去重来源:本地记录 + IM实际成员 取并集

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-07 10:05:04 +08:00
pengjieandClaude f10221e92c feat(emergency): push/send 接入IM消息推送,SendIm 新增 businessId 字段
- SendIm 新增 businessId 字段(String),用于区分业务来源,不影响已有调用
- FirstAidPushServiceImpl.send() 步骤5从日志占位改为实际发送IM群消息
- businessId 固定为 "article",前端可据此识别宣教推送消息
- 工单无 sessionId 时跳过IM发送并 log.warn 告警

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-07 09:48:37 +08:00
pengjie 945c0b46d7 @
feat(emergency): 新增腾讯IM验证的群成员列表接口,优化searchEmployee模糊搜索

- 新增 /order/getActualGroupMemberList 接口,先查本地参与人员再调腾讯IM验证,以交集为准
- 新增 GetGroupMemberInfoVO,封装腾讯IM get_group_member_info API响应
- TencentCloudImUtil 新增 getGroupMemberInfo 方法,TXController/IMHelloApi 新增对应端点
- GroupMemberVO 新增 isSelf 字段区分本人 (0/1),默认值 0
- searchEmployee 姓名/工号/手机号改为模糊搜索(* 包装实现)
- 修复 getActualGroupMemberList IM 调用失败时静默返回空列表的 bug,失败时降级使用本地成员
- 接口文档更新变更摘要,标明新接口替换原 /order/getGroupMemberList 地址

Co-Authored-By: Claude <noreply@anthropic.com>
@
2026-07-07 09:29:19 +08:00
pengjie 74ecbe6bda docs(emergency): 移动端接口文档顶部新增本次变更摘要,供前端联调 2026-07-06 17:16:55 +08:00
pengjie fd7fd32c8d feat(emergency): 新增急救员建群接口,人员接口返回手机号
- 新增 GET /api/emergency/createGroupMagFirstAider(不发起通话,自动拉关爱/急救员)
- createGroupMag 原始逻辑不受影响,新方法独立实现
- OrderOperator.operatorType 注释同步数据库(新增3/4/5)
- EmergencyProfessionUser/GroupMemberVO 新增 phone 字段
- searchExpert/getGroupMemberList 填充手机号
- API文档-移动端接口.md 同步更新
2026-07-06 17:14:48 +08:00
pengjie 4cb3411eca feat(emergency): 新增移动端宣教详情接口,整理移动端API文档
- 新增 FirstAidResourceApiController,提供 GET /api/emergency/firstAid/resource/queryById
- RequestPrefix 新增 FIRST_AID_RESOURCE 路径常量
- API文档-应急群聊拉人.md 合并入新文档 API文档-移动端接口.md(含群聊拉人 + 宣教资源)
- API文档-急救宣教资源管理v3.md 保持管理后台接口
2026-07-06 15:45:55 +08:00
pengjie 9a022aa9cc docs(emergency): 补全应急群聊拉人API文档接口地址,添加网关前缀 /health-emergency 2026-07-06 15:24:43 +08:00
lianlonggang ebc3a026d1 style(consult): banner图片获取功能调整,每次修改nacos配置代价太大了,改成缓存配置地址 2026-07-01 10:59:18 +08:00
lianlonggang 29c2be8856 style(watch): 睡眠接口午睡(短睡)兼容问题处理 2026-07-01 10:42:14 +08:00
lianlonggang 9713b242e8 style(watch): 睡眠接口午睡(短睡)兼容问题处理 2026-06-30 16:21:06 +08:00
pengjieandClaude bbb0d5b0f8 chore(emergency): 修正部署SQL,同步实体字典引用
- STATUS DEFAULT 改为 0(草稿)
- PARENT_ID 注释修正
- 删除 first_aid_resource_status/first_aid_category_type 字典
- 同步移除实体 @Excel 注解中对应 dicCode

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-26 15:38:08 +08:00
pengjieandClaude 3c5bfc8ad1 fix(emergency): 修复宣教模块3个状态机与兼容性缺陷
- auditStatus 新增 insertStrategy=IGNORED,修复新增/复制时存0而非NULL
- submitForReview 增加PENDING重复提交拦截
- recordRead/toggleFavorite 重复键异常catch兼容DM8数据库

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-26 15:09:22 +08:00
pengjieandClaude 5612fe0752 refactor(emergency): 宣教模块代码整理与问题修复
- 修复 GlobalUtils.getLoginUser() NPE 风险(send/approve/reject)
- 批量操作改为前置校验+全量执行(batchPublish/batchTakeDown/batchDeleteResources)
- 新增 deleteResource/batchDeleteResources,已发布资源不可删除
- 标签过滤 SQL 修复边界精确匹配(避免 id=2 误匹配 12/22)
- 收藏/阅读改用 DuplicateKeyException 消除并发竞态
- fillResourceExtras/queryResourceList 批量查询分类名称,避免 N+1
- 新增 validateResource 校验内容类型、分类、标签合法性
- copyResource 补全 effectiveTime/expiryTime、版本记录、校验
- 审核下发/下架/删除增加状态机保护
- send() 使用 REQUIRES_NEW 事务隔离,确保批量推送单条失败互不影响
- 版本历史上限控制 MAX_VERSIONS=20
- 分类/标签树形重构:分类不再嵌套子分类,统一为分类+标签两级
- 清理废弃方法(listCategories/listAllCategoriesAndTags 等)
- 批量删除分类/标签增加 @Transactional 事务保护

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-26 11:23:57 +08:00
pengjieandClaude 3d8b930d1a chore(emergency): 代码整理
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-25 17:37:17 +08:00
pengjie 8761a965aa feat(emergency): 急救宣教资源推送到应急群聊 2026-06-25 15:53:22 +08:00
pengjie 3f63abe1e3 Merge remote-tracking branch 'origin/xc' into xc 2026-06-25 15:50:57 +08:00
pengjieandClaude 2cc0668391 feat(emergency): 急救宣教资源管理v3 - 审批上架分离、分类标签树形重构
- approve()不再自动发布,需单独调用publish()上架
- publish()增加auditStatus=11前置校验
- batchPublish()跳过未审核通过的资源
- 分类管理支持树形结构(listRoot/listChildren/listAll)
- listAll返回分类+tags嵌套树
- listChildren返回子分类+标签
- 标签parentId改为必填
- 分类删除校验标签存在
- 分页列表填充resourceCount
- 审核记录按审核时间排序

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-25 15:50:24 +08:00
pengjie c8c3598edd fix(watch): 修复DM8不兼容的睡眠统计SQL函数
WatchStatUserInfoDaySleepMapper.xml 的 insertStat/updateStat 使用了
MySQL 专属的 timediff 和 time_to_sec 函数,DM8 报
"Member access [TIMEDIFF] unresolved"。改用 TIMESTAMPDIFF(SECOND,...)
兼容 DM8。

异常被 DataStepListener.handleStat 吞掉,导致任务显示成功但睡眠
数据从未写入 QH_WAT_STAT_USER_DAY_SLE,且 statCommon 循环中断使
后续 watchNo 的 updateLatestSleep 也不会执行,QH_WAT_DATA(type=4)
长期无值,后台列表睡眠列不显示。
2026-06-25 15:39:41 +08:00
pengjie 532041ff8d feat(emergency): 急救宣教资源管理模块多项优化
- 新增版本历史isCurrent标记,编辑/回滚时正确维护当前版本
- 审核记录独立表(QH_EME_FIRST_AID_RESOURCE_AUDIT),保留完整审核轨迹
- 审计表auditStatus沿用10/11/12,资源表保留冗余快照
- 标签挂载到分类下(parentId),同分类内名称唯一
- 分类/标签编辑时校验name唯一性
- 导出状态改用文本(statusText),审核通过+已下架正确显示
- 审核状态/驳回原因支持null更新(FieldStrategy.IGNORED)
- Controller POST接口统一使用@RequestBody接收参数
2026-06-24 17:36:44 +08:00
pengjie c6d12c9c68 fix(watch): 添加设备时校验watchNo唯一性,避免数据库唯一约束冲突 2026-06-24 11:00:48 +08:00
pengjie 6384021c4d feat(emergency): 急救宣教资源管理模块
新增急救宣教资源管理完整功能,包含6个子模块:

- 分类管理:树形结构,CRUD + 级联删除校验
- 标签管理:扁平结构,CRUD + 引用校验
- 资源管理:CRUD + 状态流转(草稿→审核→发布→下架) + 批量操作 + 阅读去重 + 复制
- 审核管理:待审核/已通过/已驳回列表 + 审核操作 + 审核记录
- 收藏管理:收藏/取消切换 + 状态查询 + 我的收藏列表
- 版本管理:编辑自动保存版本快照 + 回滚 + 差异对比

业务规则:
- 编辑/回滚后自动退回草稿,清除审核状态(方案A)
- 阅读去重:同用户重复阅读不增加计数
- 逻辑删除 + 租户隔离

Co-Authored-By: Claude <noreply@anthropic.com>
@
2026-06-23 17:40:30 +08:00
lianlonggangandClaude 74ebe26a6c feat(watch): 关爱人员统计新增期初未佩戴人数列
新增关爱人员未佩戴人数(仅计入统计日期起期已绑定的人数)列,
通过 bind_date <= 统计起始日期 条件过滤,仅计入统计起期已绑定但未佩戴的关爱人员。

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-18 17:25:13 +08:00
lianlonggang 7acee51892 style(system): 登录后更新部门信息功能调整 2026-06-12 11:49:44 +08:00
lianlonggang 0b6b5856d1 style(watch): 关爱人员标记及相关统计功能调整 2026-06-12 11:49:00 +08:00
lianlonggang 7775f6eef4 提交一次配置文件 2026-06-03 10:27:39 +08:00
lianlonggang 99f150be25 feat(watch): 手表设备导出新增用户单位和用户部门字段 2026-05-25 14:08:23 +08:00
lianlonggang eb33cc2408 fix(watch): 修复DM8不兼容的EXTRACT时间差计算
- WatchDataMapper.xml: insertSleep/updateSleep 替换 EXTRACT(H/M FROM interval) 为 TIMESTAMPDIFF
- WatchDataWorkoutMapper.xml: 4处运动时长计算替换为 TIMESTAMPDIFF(SECOND, ...)
- WatchDeviceMapper.xml: 设备看板运动时长字段替换为 TIMESTAMPDIFF
- WatchMapper.java: getDataSteps 去掉 MAX 聚合避免 GROUP BY 报错
2026-05-25 14:07:36 +08:00
wanghao d11d605418 修改用户睡眠列表报错 2026-05-21 17:40:12 +08:00
lianlonggang 2d3f3670e0 style(watch): 统一代码格式,清理多余空行
- 规范 WatchMapper.xml 文件缩进与空行
- 规范 WatchServiceImpl.java 导入语句格式
2026-05-15 10:36:44 +08:00
lianlonggang b4111900f1 feat(watch): 手表数据统计与设备管理功能增强
- WatchDataItemVO 新增 Date 类型字段及 JsonFormat 格式化支持
- DeptStatisticDataController 部门统计数据查询逻辑优化
- IWatchDeviceService 接口扩展新业务方法声明
2026-05-14 18:48:11 +08:00
lianlonggang 74310b095c style(watch): 清理代码格式,移除多余空行
统一 health-watch-api 模块中多个文件的代码风格,
删除冗余空行,保持代码整洁一致。

涉及文件:
- DepartStatTransfer.java
- DeptData.java
- DeptStatData.java
- WearingDetailTransfer.java
2026-05-14 10:00:25 +08:00
lianlonggang 61f26973ae fix(watch): 上线修复BUG 2026-05-10 03:54:25 +08:00
lianlonggang 270c9a52f9 fix(watch): 最近一次代码合并 2026-05-09 20:23:20 +08:00