From 48f04577dc03fa0b701de6e5254d34b60f2c8cce Mon Sep 17 00:00:00 2001 From: liumangmang Date: Thu, 9 Apr 2026 11:03:45 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B04=E6=9C=88=E5=BE=85?= =?UTF-8?q?=E5=8A=9E=E4=BB=BB=E5=8A=A1=E7=8A=B6=E6=80=81=EF=BC=9A=E5=B7=A1?= =?UTF-8?q?=E8=A7=86=E6=8A=A5=E5=91=8A=E9=85=8D=E7=BD=AE=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E8=A1=A5=E5=85=85=E5=89=8D=E7=AB=AF=E4=BF=AE=E5=A4=8D=E8=AF=B4?= =?UTF-8?q?=E6=98=8E=EF=BC=8Clinx80=20excel=E9=97=AE=E9=A2=98=E6=A0=87?= =?UTF-8?q?=E8=AE=B0=E4=B8=BA=E5=B7=B2=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/work/todo/2026-03.md | 64 ++++++---------------------------------- src/work/todo/2026-04.md | 17 +++++------ 2 files changed, 17 insertions(+), 64 deletions(-) diff --git a/src/work/todo/2026-03.md b/src/work/todo/2026-03.md index d927df7..98d39c0 100644 --- a/src/work/todo/2026-03.md +++ b/src/work/todo/2026-03.md @@ -15,13 +15,13 @@ title: 3月待办(2026-03) # 待办清单(2026-03) > 最后更新: 2026-04-02 -> 统计: 已完成 16 项、已提交 0 项、待测试 0 项、部分完成 0 项、待确认 1 项、未开始 4 项、已取消 1 项 +> 统计: 已完成 17 项、已提交 0 项、待测试 0 项、部分完成 0 项、待确认 1 项、未开始 3 项、已取消 1 项 ## 清单总览 - 当前优先: 13(待确认)、14(未开始) -- 本周建议推进: 7、9、14、22(未开始) -- 已归档完成: 1、2、3、4、5、8、10、11、12、15、16、17、18、19、20、21 +- 本周建议推进: 7、9、14(未开始) +- 已归档完成: 1、2、3、4、5、8、10、11、12、15、16、17、18、19、20、21、22 ## 状态说明 @@ -58,58 +58,6 @@ title: 3月待办(2026-03) - **描述**: 验证7050系统对瀚高数据库的兼容性与适配结果,整理问题清单 - **下一步**: 明确验证范围(安装、连接、读写、迁移脚本、性能基线)并安排验证 -### 22. [全部版本] 优化服务调用失败异常反馈 - -- **创建日期**: 2026-03-30 -- **描述**: 优化服务调用失败时的异常反馈机制,在日志中附带详细的错误信息,便于快速定位问题 -- **问题现象**: - - 当前服务调用失败时,日志仅显示"服务不可用 [videodevmng]" - - 缺少具体的错误原因、调用链路、请求参数等关键信息 - - 排查问题时需要额外查看多个日志文件才能定位根因 -- **优化目标**: - 1. 异常日志中增加服务名称、调用方法、请求参数 - 2. 记录完整的异常堆栈和错误原因 - 3. 添加服务状态检查结果(连接池状态、服务健康度等) - 4. 统一异常处理格式,便于日志分析和监控告警 -- **错误日志示例**: - ``` - 2026-03-30 15:54:45.290 [巡视任务-任务下发线程0] ERROR com.sunri.model.patrol.schedule.job.PatrolTaskJob - 任务[549]采集失败,点位:58409 - com.sunri.client.exception.ServiceUnavailableException: 服务不可用 [videodevmng] - at com.sunri.client.pool.ServiceClientPool.getClient(ServiceClientPool.java:484) - at com.sunri.client.ClientManager.getClient(ClientManager.java:130) - at com.sunri.client.mapper.BusClientInterceptor.sendData(BusClientInterceptor.java:151) - ``` - ``` - 2026-04-01 10:32:10.591 [巡视任务-任务下发线程0] ERROR com.sunri.model.patrol.task.PatrolTaskControl - 文件复制失败 - java.nio.file.NoSuchFileException: /home/ftp/1013804/2026/4/1/Patrol/J8lesNsDEwofyEk1LelIHbXnx1L8Gtcg/Video/0001_e55110ed-494f-4b2d-a10c-b705030ee176_20260401103147.mp4 - at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86) - at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102) - at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107) - at sun.nio.fs.UnixCopyFile.copy(UnixCopyFile.java:526) - at sun.nio.fs.UnixFileSystemProvider.copy(UnixFileSystemProvider.java:253) - at java.nio.file.Files.copy(Files.java:1274) - at com.sunri.model.patrol.task.PatrolTaskControl.copyWithSuffix(PatrolTaskControl.java:2974) - at com.sunri.model.patrol.task.PatrolTaskControl.handVideoAcquisition(PatrolTaskControl.java:3108) - at com.sunri.model.patrol.task.PatrolTaskControl.videoFileAcquisition(PatrolTaskControl.java:2724) - at com.sunri.model.patrol.task.PatrolTaskControl$$FastClassBySpringCGLIB$$db2c8ca8.invoke() - at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) - at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:687) - at com.sunri.model.patrol.task.PatrolTaskControl$$EnhancerBySpringCGLIB$$de3e84a9.videoFileAcquisition() - at com.sunri.model.patrol.task.issued.pool.MessageUpdatePool.sendMessage(MessageUpdatePool.java:186) - at com.sunri.model.patrol.schedule.job.PatrolTaskJob.executeCapture(PatrolTaskJob.java:454) - at com.sunri.model.patrol.schedule.job.PatrolTaskJob.processPositionQueue(PatrolTaskJob.java:365) - at com.sunri.model.patrol.schedule.job.PatrolTaskJob.lambda$executePositionPatrol$434(PatrolTaskJob.java:279) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) - at java.lang.Thread.run(Thread.java:750) - ``` -- **下一步**: - 1. 梳理所有服务调用异常处理点 - 2. 设计统一的异常信息格式(包含服务名、方法名、参数、错误原因) - 3. 在 ServiceClientPool、ClientManager、BusClientInterceptor 等关键类中增强异常信息 - 4. 添加服务健康检查日志 - 5. 验证优化后的日志是否能快速定位问题 - --- ## 已完成归档 @@ -204,6 +152,12 @@ title: 3月待办(2026-03) - **描述**: 7050项目机器人告警复检需求开发已完成,等待测试 - **完成情况**: 已完成联调与回归测试,告警复检流程和边界场景验证通过 +### 22. [全部版本] 优化服务调用失败异常反馈 + +- **创建日期**: 2026-03-30 +- **描述**: 优化服务调用失败时的异常反馈机制,在日志中附带详细的错误信息,便于快速定位问题 +- **完成情况**: 已完成全版本优化,日志已在ServiceClientPool、ClientManager、BusClientInterceptor等关键类中增强了异常信息,包含服务名、方法名、参数、错误原因、调用链路等,可快速定位问题 + --- diff --git a/src/work/todo/2026-04.md b/src/work/todo/2026-04.md index f7aa1c3..c75855b 100644 --- a/src/work/todo/2026-04.md +++ b/src/work/todo/2026-04.md @@ -15,11 +15,11 @@ title: 4月待办(2026-04) # 待办清单(2026-04) > 最后更新: 2026-04-02 -> 统计: 已完成 1 项、未开始 3 项 +> 统计: 已完成 2 项、未开始 2 项 ## 清单总览 -- 当前优先: 3(未开始) +- 当前优先: 2(未开始) ## 状态说明 @@ -103,8 +103,10 @@ title: 4月待办(2026-04) at java.lang.Thread.run(Thread.java:748) 2026-03-31 19:16:52.945 [TThreadPoolServer WorkerProcess-6] INFO com.sunri.model.pipeline.DictatePipeline - [流水线完成] PatrolReportDevicePointRecordPipeLine 处理耗时: 34ms ``` -- **完成方案**: 将 PatrolReportDevicePointRecordPipeLine 的去重与处理维度统一改为 devicePointId 全局唯一(跨主设备同点位仅保留最大 id 并删除其余),再基于保留记录更新/插入以彻底避免 Duplicate key。 -- **完成情况**: 已修复并验证,同一主设备下多点位配置保存正常 +- **完成方案**: + 1. 后端:将 PatrolReportDevicePointRecordPipeLine 的去重与处理维度统一改为 devicePointId 全局唯一(跨主设备同点位仅保留最大 id 并删除其余),再基于保留记录更新/插入以彻底避免 Duplicate key。 + 2. 前端:修复筛选搜索修改设置后同主设备下其他点位配置为空的显示问题 +- **完成情况**: 前后端均已修复并验证,同一主设备下多点位配置保存和显示正常 ### 2. 与姬工讨论上海导出五通报表的问题 @@ -113,13 +115,10 @@ title: 4月待办(2026-04) 1. 提前梳理现有报表导出功能逻辑 2. 预约时间与姬工同步讨论细节 -### 3. 修复现场linx80 excel打开失败问题 +### 3. 修复现场linx80 excel打开失败问题 - **描述**: 现场linx80设备导出的Excel文件打开失败 -- **下一步**: - 1. 复现Excel导出问题 - 2. 排查导出格式兼容性问题 - 3. 修复并验证导出文件可正常打开 +- **完成情况**: 经排查为现场系统软件版本过低导致,无需修复,建议升级系统软件版本即可解决 ### 4. 告警阈值xml导入限制同一个点位统一各类型只能有一条记录