---
icon: fa6-solid:list-check
date: 2026-04-01
pageClass: todo-page
category:
- 待办
tag:
- 任务清单
title: 4月待办(2026-04)
---
4月待办事项记录
# 待办清单(2026-04)
> 最后更新: 2026-04-02
> 统计: 未开始 3 项
## 清单总览
- 当前优先: 3(未开始)
## 状态说明
---
## 当前优先
### 1. 巡视报告配置异常需要修复
- **描述**: 巡视报告配置异常,在这里设置筛选搜索修改设置之后,同一主设备下其它点的设置就变成空的了
- **错误日志**:
```
2026-03-31 19:16:52.944 [TThreadPoolServer WorkerProcess-6] ERROR com.sunri.model.pipeline.DictatePipeline - DictatePipeline start, 处理异常 {}
java.lang.IllegalStateException: Duplicate key PatrolReportDevicePointRecord(id=37327, mainDeviceId=2198, devicePointId=104250, reportSn=1, standardValue=正常)
at java.util.stream.Collectors.lambda$throwingMerger$0(Collectors.java:133)
at java.util.HashMap.merge(HashMap.java:1254)
at java.util.stream.Collectors.lambda$toMap$58(Collectors.java:1320)
at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:566)
at com.sunri.model.supersysmodel.pipeline.PatrolReportDevicePointRecordPipeLine.handle(PatrolReportDevicePointRecordPipeLine.java:44)
at com.sunri.model.supersysmodel.pipeline.ObjectVerifyPipeline.proceed(ObjectVerifyPipeline.java:35)
at com.sunri.model.supersysmodel.pipeline.PatrolReportDevicePointRecordPipeLine.proceed(PatrolReportDevicePointRecordPipeLine.java:19)
at com.sunri.model.pipeline.DictatePipeline.start(DictatePipeline.java:23)
at com.sunri.model.pipeline.DictatePipeline.skip(DictatePipeline.java:43)
at com.sunri.model.pipeline.DictatePipeline.start(DictatePipeline.java:32)
at com.sunri.model.pipeline.DictatePipeline.skip(DictatePipeline.java:43)
at com.sunri.model.pipeline.DictatePipeline.start(DictatePipeline.java:32)
at com.sunri.model.pipeline.DictatePipeline.skip(DictatePipeline.java:43)
at com.sunri.model.pipeline.DictatePipeline.start(DictatePipeline.java:32)
at com.sunri.model.pipeline.DictatePipeline.skip(DictatePipeline.java:43)
at com.sunri.model.pipeline.DictatePipeline.start(DictatePipeline.java:32)
at com.sunri.model.pipeline.DictatePipeline.skip(DictatePipeline.java:43)
at com.sunri.model.pipeline.DictatePipeline.start(DictatePipeline.java:32)
at com.sunri.model.pipeline.DictatePipeline.skip(DictatePipeline.java:43)
at com.sunri.model.pipeline.DictatePipeline.start(DictatePipeline.java:32)
at com.sunri.model.pipeline.DictatePipeline.skip(DictatePipeline.java:43)
at com.sunri.model.pipeline.DictatePipeline.start(DictatePipeline.java:32)
at com.sunri.model.pipeline.DictatePipeline.skip(DictatePipeline.java:43)
at com.sunri.model.pipeline.DictatePipeline.start(DictatePipeline.java:32)
at com.sunri.model.pipeline.DictatePipeline.skip(DictatePipeline.java:43)
at com.sunri.model.pipeline.DictatePipeline.start(DictatePipeline.java:32)
at com.sunri.model.pipeline.DictatePipeline.skip(DictatePipeline.java:43)
at com.sunri.model.pipeline.DictatePipeline.start(DictatePipeline.java:32)
at com.sunri.model.pipeline.DictatePipeline.skip(DictatePipeline.java:43)
at com.sunri.model.pipeline.DictatePipeline.start(DictatePipeline.java:32)
at com.sunri.model.supersysmodel.pipeline.DevicePointManager.pointImport(DevicePointManager.java:62)
at com.sunri.model.supersysmodel.SuperSysModelConfiguration.readExcelBytes(SuperSysModelConfiguration.java:2419)
at com.sunri.model.supersysmodel.SuperSysModelConfiguration.devicePointImport(SuperSysModelConfiguration.java:2495)
at com.sunri.service.impl.supersysmodel.SuperSysModelServiceImpl.devicePointImport(SuperSysModelServiceImpl.java:172)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sunri.server.mapper.handler.ByteArrayMethodHandler.proceed(ByteArrayMethodHandler.java:108)
at com.sunri.pipeline.Pipeline.start(Pipeline.java:26)
at com.sunri.pipeline.Pipeline.skip(Pipeline.java:43)
at com.sunri.pipeline.Pipeline.start(Pipeline.java:32)
at com.sunri.server.dispatch.Func.proceed(Func.java:152)
at com.sunri.server.service.impl.RequestServiceImpl.doExec(RequestServiceImpl.java:43)
at com.sunri.server.message.handler.RequestHandler.proceed(RequestHandler.java:30)
at com.sunri.pipeline.Pipeline.start(Pipeline.java:26)
at com.sunri.pipeline.Pipeline.skip(Pipeline.java:43)
at com.sunri.pipeline.Pipeline.start(Pipeline.java:32)
at com.sunri.server.processor.ServerProcessor.doExec(ServerProcessor.java:36)
at com.sunri.server.service.RequestService$Processor$doExec.getResult(RequestService.java:155)
at com.sunri.server.service.RequestService$Processor$doExec.getResult(RequestService.java:135)
at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:38)
at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:38)
at com.sunri.server.processor.ServerProcessorFactory$RequestServiceProcessor.process(ServerProcessorFactory.java:74)
at org.apache.thrift.TMultiplexedProcessor.process(TMultiplexedProcessor.java:138)
at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:250)
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:748)
2026-03-31 19:16:52.945 [TThreadPoolServer WorkerProcess-6] INFO com.sunri.model.pipeline.DictatePipeline - [流水线完成] PatrolReportDevicePointRecordPipeLine 处理耗时: 34ms
```
- **下一步**:
1. 定位 PatrolReportDevicePointRecordPipeLine.java:44 代码逻辑
2. 修复 toMap 重复 key 问题
3. 验证修改后同一主设备下多点位配置保存正常
### 2. 与姬工讨论上海导出五通报表的问题
- **描述**: 姬工安排讨论上海项目导出五通报表相关需求与问题
- **下一步**:
1. 提前梳理现有报表导出功能逻辑
2. 预约时间与姬工同步讨论细节
### 3. 修复现场linx80 excel打开失败问题
- **描述**: 现场linx80设备导出的Excel文件打开失败
- **下一步**:
1. 复现Excel导出问题
2. 排查导出格式兼容性问题
3. 修复并验证导出文件可正常打开